0

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

一旦用户选择了我的选项,他就会加密他的文件,并且他应该能够从应用程序内共享它,一键完成。

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

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

除此之外,我还获得了用户选择的文件 URI,getParcelableArrayListExtra()但是,当我尝试打印 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());
        }
    }
4

1 回答 1

0

I have managed to implement this feature by checking the scheme of the data. If the scheme is "file" we get the Path and pass it to the Share Intent, and if the scheme is "content" then we convert it to path using this and then send it to the Share Intent.

For the issue of checking authentication, it seems that we have to pass the data manually to the starting activity and again pass the data back when it is complete. It is the way to share data between activities in android.

I hope this information would help someone in future.

Regards.

于 2013-05-02T08:44:05.943 回答