【发布时间】:2014-04-25 05:42:09
【问题描述】:
我正在使用 startActivityForResult / onActivityResult 在 Google Glass 上的两个应用程序之间进行通信。
调用代码:
Intent intentScan = new Intent("com.github.barcodeeye.SCAN");
intentScan.setPackage("com.github.barcodeeye");
intentScan.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intentScan.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
intentScan.putExtra("SCAN_MODE", "QR_CODE_MODE");
intentScan.putExtra("RESULT_DISPLAY_DURATION_MS", 1000L);
intentScan.putExtra("SAVE_HISTORY", false);
intentScan.putExtra("PROMPT_MESSAGE", "Scan MQTT Config Code");
startActivityForResult(intentScan, 333);
响应码:
activity.setResult(Activity.RESULT_OK, (Intent) message.obj);
activity.finish();
onActivityResult
if (requestCode == 333 && resultCode == RESULT_OK)
processQRCode(data);
我调试了这两个应用程序,被调用的应用程序到达setResult 和finish,但从未调用过onActivityResult
这是什么原因造成的?
(我正在调用 BarcodeEye 项目的一个分支,它重新启用了通过意图调用它的能力:https://github.com/paulpv/BarcodeEye/tree/intent)
【问题讨论】:
-
您能附上您的
onActivityResult()代码吗? -
我可以,但是......它显然与问题无关,因为它永远不会被调用。
-
好吧,那我换个方式问:你的
onResultActivity()是这样定义的吗?public void startActivityForResult (Intent intent, int requestCode, Bundle options) -
公平。是的,它会被其他
startActivityForResult()调用。在这些情况下,被调用的活动托管在我的应用程序中,这里是一个不同的应用程序。这是我能发现的唯一真正的区别。 -
应该不是问题。有任何类实现差异吗?我的意思是,您从
Activity调用startActivityForResult()而另一个应用调用Fragment或类似的东西?
标签: android google-glass google-gdk