Devolver el resultado de un script de python usando SL4A de vuelta a la aplicación de Android

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?

preguntado el 27 de agosto de 12 a las 09:08

1 Respuestas

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

El enlace de arriba no funciona. Siga el enlace. "Permitir que los scripts salgan con un resultado" github.com/damonkohler/sl4a/issues/262 - jkr

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.