从一个应用程序获取数据,并使用Android中的应用程序将其发送到另一个应用程序
问题描述:
我正在开发一个应用程序,该应用程序公开共享意向。当用户从任何应用打开“共享”菜单时,他会在列表中看到我的应用。从一个应用程序获取数据,并使用Android中的应用程序将其发送到另一个应用程序
一旦用户选择了我的选项,他就可以将他的文件加密,并且他应该能够从应用内共享它,只需点击一下即可。
此外,我的应用程序使用身份验证登录。
目前,我可以将我的应用程序活动公开为共享意图。我也可以从文件浏览器中选择它。但是,当我从列表中选择我的应用程序时,它直接进入活动,而不是进行身份验证。我希望这是应该的方式,但我希望它首先进行身份验证,一旦通过身份验证,然后转到加密&共享活动。我怎么做?
除此之外,我还通过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());
}
}
答
我已成功通过检查数据的方案来实现这一功能。如果方案是“文件”,我们得到Path并将其传递给Share Intent,如果方案是“content”,那么我们将它转换为使用this的路径,然后将其发送到Share Intent。
对于检查身份验证的问题,我们似乎必须手动将数据传递到启动活动,并在数据完成时再次传回数据。这是在android中的活动之间共享数据的方式。
我希望这些信息能帮助未来的人。
问候。