Есть ли способ запустить скрипт SL4A из каталога в другом месте? - PullRequest
4 голосов
/ 17 ноября 2011

sl4a имеет все свои скрипты в / sdcard / sl4a / scripts

Можно ли запустить скрипт, который живет в другом месте:

например. из / sdcard / dropbox / pyscripts [подмигнул]

Ответы [ 5 ]

5 голосов
/ 08 декабря 2012

Это немного устарело, но я пришел сюда в поисках ответа на этот вопрос, и я нашел один, поэтому я решил, что должен поделиться им с кем-то еще.

Когда вы запускаете Android для запуска скрипта в SL4A, вы можете указать любой скрипт в файловой системе. Вы можете написать скрипт для выдачи этого намерения (или приложение, если вам так хотелось). Вот пример на Python:

import android

droid = android.Android()

activity = 'com.googlecode.android_scripting.action.LAUNCH_BACKGROUND_SCRIPT'
extras = {}
extras['com.googlecode.android_scripting.extra.SCRIPT_PATH'] = '/any/script/you/like.py'

packagename =  'com.googlecode.android_scripting'
classname = 'com.googlecode.android_scripting.activity.ScriptingLayerServiceLauncher'

intent = droid.makeIntent(activity, None, None, extras, None, packagename, classname).result

droid.startActivityIntent(intent)

Я учел это, так что (я надеюсь) легче увидеть, что происходит. Если вы вызываете getIntent () из скрипта, он покажет вам анатомию намерения, которое его вызывает. Вот как я это понял.

1 голос
/ 13 марта 2013

Отвечая на старый вопрос .. Но я нашел способ сделать это, используя Dropsync (бесплатное приложение), которое может синхронизировать любую папку на вашей SD-карте с определенной папкой DropBox. Он может синхронизироваться в обоих направлениях, но также имеет много других опций синхронизации.

Dropsync: https://play.google.com/store/apps/details?id=com.ttxapps.dropsync&hl=en

1 голос
/ 20 ноября 2011

Я думаю, что ответ «нет» в данный момент времени.

Приложение не имеет возможности установить этот путь. Единственная другая идея, которая у меня была, - создать символическую ссылку из папки dropbox на директорию скриптов. Но это также имеет несколько серьезных проблем, самая большая из которых заключается в том, что большинство SD-карт отформатированы в FAT32, который просто не поддерживает символические ссылки. Если у вас другая файловая система, вы можете попробовать этот путь. Не уверен, что требуется root - я думаю, что запись на SDCard не должна этого требовать. Также не уверен, правильно ли приложение обрабатывает ссылку, но в теории вся ссылка должна быть невидима для него и обрабатываться как обычная папка.

0 голосов
/ 04 октября 2014
<intent-filter>
                 <action android:name="android.intent.action.VIEW" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <data android:scheme="file" />
                 <data android:host="*" />
                 <data android:pathPattern=".*\\.py"
                     android:mimeType="*/*" />
</intent-filter>

Добавьте это в манифест приложения под фильтром намерений mainacctivity

        String path = getIntent().getDataString();
        if(path!=null){         //this happens if you open the app without clicking on any .py file
            path=path.substring(7);
            Intent intent=new Intent();                     
            intent.setComponent(new ComponentName("com.googlecode.android_scripting","com.googlecode.android_scripting.activity.ScriptingLayerServiceLauncher"));   
            intent.putExtra("com.googlecode.android_scripting.extra.SCRIPT_PATH",path);
            intent.setAction("com.googlecode.android_scripting.action.LAUNCH_FOREGROUND_SCRIPT");
            startActivity(intent);
            System.exit(0);

       }

Добавьте этот код в Main Activity

Теперь у вас есть блестящее приложение, которое будет запускаться при каждом нажатии налюбой файл с расширением .py. Чтобы использовать больше типов сценариев, добавьте еще pathPatterns.Кроме того, теперь вы можете написать свое собственное приложение для редактирования файлов .py / поиска во всех сценариях в любом месте и всех, а затем запустить их в sl4a.В магазине Play также есть приложение под названием sl4a script launcher

0 голосов
/ 28 июня 2012

Попробуйте приложение Touchqode. Может выполнять сценарии sl4a.

...