Categories: Perl

perl-on-android/

Есть такой проект под названием Scripting Layer for Android (SL4A). Это штука, которая позволяет запускать на Android-устройствах скрипты, написанные на Perl, Python, JRuby, Lua, JavaScript и других языках.

Устанавливается SL4A следующим образом. Переходим по этой ссылке и находим там файл с именами вроде sl4a_r6.apk. При клике по имени файла перед вами появится страница для загрузки с QR-кодом. Возьмите свой телефон или планшет, считайте код программой QR Droid или ее аналогом, скачайте и установите SL4A.

Затем перейдите в «Приложения → SL4A → View → Interpreters → Add → Perl 5.10.1», дождитесь завершения загрузки apk-пакета и установите его. После установки перейдите в « Приложения → Perl for Android» и нажмите «Install». Затем вновь откройте SL4A и запустите скрипт test.pl.

Теперь попробуем написать собственный скрипт, например, отправляющий SMS:

#!/usr/bin/env perl

use strict ;
use warnings ;

use Android ;

my $droid = Android -> new ;

# выбираем телефон
my $phone = $droid -> pickPhone ;
die $phone -> { error } if $phone -> { error } ;

# произносим текст sms-сообщения
my $sms = $droid -> recognizeSpeech ;
die $sms -> { error } if $sms -> { error } ;

# проверяем получателя и текст сообщения
$droid -> dialogCreateAlert (
«Send this SMS to $phone->{result}?» ,
$sms -> { result }
) ;
$droid -> dialogSetPositiveButtonText ( ‘Yes’ ) ;
$droid -> dialogSetNegativeButtonText ( ‘No’ ) ;
$droid -> dialogShow ;
my $res = $droid -> dialogGetResponse ;
die $res -> { error } if $res -> { error } ;

if ( $res -> { result } { which } eq ‘positive’ ) {
# отправляем сообщение
$droid -> smsSend ( $phone -> { result } , $sms -> { result } ) ;
}

Вы можете загрузить его прямо в ваше Android-устройство, воспользовавшись QR-кодом справа. Поместите закодированный в нем текст в буфер обмена с помощью вашего любимого считывателя кодов. Затем скажите «SL4A → Add → Perl 5.10.1», вставьте текст скрипта из буфера обмена и сохраните его, скажем, под именем send-sms.pl.

Если со считыванием кода что-то не заладилось, вы можете сохранить скрипт у себя на компьютере, а затем скопировать на Android-устройство в каталог /sdcard/sl4a/scripts с помощью USB или, например, Dropbox.

Вновь открываем SL4A и запускаем наш скрипт. Велика вероятность, что вы получите следующую ошибку:

Can’t locate unicore/PVA.pl in @INC (@INC contains …

Как оказалось, соответствующему тикету в багтрекере проекта уже больше года, но почему-то никто ничего не хочет с ним делать. А тем временем решается проблема очень просто. Нужно собрать Perl 5.10 под perlbrew и положить недостающие файлы в каталог /sdcard/ com.googlecode.perlforandroid/ extras/ perl/ site_perl. Вы можете скачать архив с этими файлами отсюда . Распаковать их на Android-устройстве можно, например, с помощью приложения Easy Unrar Lite.

Теперь, по идее, все должно работать. Скрипт попросит вас выбрать один из контактов, затем предложит продиктовать текст SMS (чтобы работало распознавание голоса, нужно быть онлайн), после чего покажет диалог с просьбой подтвердить получателя и текст сообщения. Если ответить «Yes», на выбранный номер будет отправлено SMS с продиктованным текстом.

С помощью SL4A вы можете управлять звонками, контактами, электронной почтой, камерой, микрофоном, GPS, Bluetooth, а также получать информацию о модели телефона, состоянии батареи, SIM-карте и тп. Однако следует понимать, что SL4A предназначен в первую очередь для написания скриптов в несколько десятков или сотен строк кода, а не больших и сложных приложений.

Подборка ссылок по теме:

А вы уже пробовали SL4A? Если пробовали, то поведайте, какие приложения и на каком языке программирования вы писали. Если нет, то планируете ли попробовать в ближайшем будущем? И кстати, а не известно ли вам аналогичных проектов для iOS и Widnows Phone?

admin

Share
Published by
admin
Tags: Perl

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

4 недели ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

4 недели ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

4 недели ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

4 недели ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

4 недели ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

4 недели ago