在Android中使用我的应用从一个应用获取数据并将其发送到另一个应用

时间:2013-04-30 05:59:14

标签: android android-intent share

我正在开发一个公开Share Intent的应用程序。当用户从任何应用程序打开“共享”菜单时,他会在列表中看到我的应用程序。

一旦用户选择了我的选项,他就会加密他的文件,他应该可以在应用程序中共享它,只需点击一下。

此外,我的应用程序使用身份验证进行登录。

目前,我可以将我的应用活动公开为Share Intent。我也可以从文件浏览器中选择它。但是,当我从列表中选择我的应用程序时,它直接转到活动,而不是身份验证。我希望它应该是这样的,但我希望它首先进行身份验证,一旦经过身份验证,然后转到加密和分享活动。我该怎么做?

除此之外,我还通过getParcelableArrayListExtra()获取用户选择的文件URI,但是,当我尝试打印URI时,它会给我空指针异常。我在清单中使用了SEND_MULTIPLE作为操作。我在这做错了什么?请帮助。

代码是:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_encrypt_share);

        Intent intent = getIntent();        
        ArrayList<Uri> fileUris = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
        System.err.print(fileUris);     
        for(Uri f: fileUris){
            Log.e("FileName:", f.getPath().toString());
        }
    }

1 个答案:

答案 0 :(得分:0)

我已经设法通过检查数据方案来实现此功能。如果方案是“文件”,我们获取Path并将其传递给Share Intent,如果方案是“content”,那么我们使用this将其转换为路径,然后将其发送到Share Intent。

对于检查身份验证的问题,似乎我们必须手动将数据传递给启动活动,并在完成后再次传回数据。这是在android中的活动之间共享数据的方式。

我希望这些信息可以在将来帮助某人。

问候。