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

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

2 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

2 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

2 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

2 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

2 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

2 месяца ago