任何人都可以告诉我如何通过bundle或其他任何东西在android中的两个安装的应用程序之间传递数据吗?
我已经用Google搜索了但无法得到任何适当的指南。
在第一个应用程序中,我有以下代码用于传输值" withdrawl"到另一个。
Intent fingerPrintCaptureImageIntent = new Intent(
Intent.ACTION_SEND);
fingerPrintCaptureImageIntent.putExtra("source",
"withdrawal");
// fingerPrintCaptureImageIntent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
// fingerPrintCaptureImageIntent.setComponent(new
// ComponentName("com.integratedbiometrics.SimpleScan",
// "com.integratedbiometrics.SimpleScan.SimpleScanActivity"));
PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager
.queryIntentActivities(
fingerPrintCaptureImageIntent, 0);
boolean isIntentSafe = activities.size() > 0;
if (isIntentSafe) {
startActivityForResult(
fingerPrintCaptureImageIntent,
Constants.FINGER_PRINT_REQUEST_CODE_FOR_WITHDRAWAL);
} else {
Log.i("No Such Activity Found",
"No Such Activity Found To Open.");
ShowToastMessage("No FingerPrint Device is available.");
}
在第二次申请时,我已经测试过它是否收到了字符串&#34; withdrawl&#34; 。如果它收到,它会将布局设置为activity_verify。它的代码如下:
Bundle bundle = getIntent().getExtras();
if(bundle!=null && bundle.containsKey("withdrawal"))
{
setContentView(R.layout.activity_verify);
requestPurpose = REQUEST_PURPOSE.TAKE_SINGLE_FINGER_PRINT;
}
else
{
requestPurpose = REQUEST_PURPOSE.TAKE_FOUR_FINGER_PRINT;
setContentView(R.layout.activity_register);
}
我已发送&#34;撤回&#34;从第一次申请到第二次申请但是第二个应用程序是使用activity_register布局启动的。为什么?你能帮我吗 ?
答案 0 :(得分:2)
您的withdrawal
字符串是值 - 而不是键。没有在包中搜索值。将您的if
条件更改为bundle.containsKey("source")
。
您可能需要bundle.getString("source").equals("withdrawal")
。