如何在Android中将值从一个应用程序传递到另一个应用程序?

时间:2015-08-17 08:31:36

标签: android

任何人都可以告诉我如何通过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布局启动的。为什么?你能帮我吗 ?

1 个答案:

答案 0 :(得分:2)

您的withdrawal字符串是值 - 而不是键。没有在包中搜索值。将您的if条件更改为bundle.containsKey("source")

您可能需要bundle.getString("source").equals("withdrawal")