Devolver el resultado de un script de python usando SL4A de vuelta a la aplicación de Android
Frecuentes
Visto 1,708 veces
3
Estoy tratando de obtener el resultado de un script de python usando (SL4A) después de llamar a startActivityForResult() en mi aplicación Java para Android. Sin embargo, siempre obtengo una intención nula en mi onActivityResult()
Ejecutar el script de python desde mi aplicación Java
public static Intent buildStartInBackgroundIntent(File script) {
final ComponentName componentName = Constants.SL4A_SERVICE_LAUNCHER_COMPONENT_NAME;
Intent intent = new Intent();
intent.setComponent(componentName);
intent.setAction(Constants.ACTION_LAUNCH_BACKGROUND_SCRIPT);
intent.putExtra(Constants.EXTRA_SCRIPT_PATH, script.getAbsolutePath());
return intent;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.custom_layout_running);
String pythonScript = "/sdcard/sl4a/scripts/pythondecoder.py";
Intent intent = buildStartInBackgroundIntent(new File(pythonScript));
intent.putExtra("serialinput","MessageIn");
startActivityForResult(intent, PYTHONSCRIPTDECODE);
}
Recibir el resultado de pythonscript al finalizar
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode){
case PYTHONSCRIPTDECODE:
Log.d("Robin_ValueCheck","Python reply me -> "+data.getExtras().getString("SCRIPT_RESULT"));
break;
}
sin embargo, tras el resultado de la actividad, Logcat Error Msg.
08-27 09:56:41.945: E/AndroidRuntime(29438): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=3050, result=0, data=null} to activity {xxx.xxx.xxx/com.xxx.xxx.CustomLayoutViewer}: java.lang.NullPointerException
Este es mi script de python, ejecutado por SL4A
import android
droid = android.Android()
mIntent = droid.getIntent().result
Extras = mIntent["extras"]
Input = Extras["serialinput"]
Result_OK = -1
resultData = "Returned from SL4a Script!"
droid.setResultString(Result_OK, resultData)
Cuando la secuencia de comandos de python sale, mi onActivityResult se notifica como se ve en SOLICITUD = 3050. Sin embargo, la intención que debería regresar es NULL. Ya llamé a setResultString() en mi script de python. ¿Alguna idea de lo que podría haber salido mal?
1 Respuestas
1
desafortunadamente, esto no funciona, consulte también el problema 239 ... es posible que desee destacar ese problema allí: http://code.google.com/p/android-scripting/issues/detail?id=239
Respondido 09 Oct 12, 19:10
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas android python sl4a or haz tu propia pregunta.
El enlace de arriba no funciona. Siga el enlace. "Permitir que los scripts salgan con un resultado" github.com/damonkohler/sl4a/issues/262 - jkr