我正在开发一个公开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());
}
}
答案 0 :(得分:0)
我已经设法通过检查数据方案来实现此功能。如果方案是“文件”,我们获取Path并将其传递给Share Intent,如果方案是“content”,那么我们使用this将其转换为路径,然后将其发送到Share Intent。
对于检查身份验证的问题,似乎我们必须手动将数据传递给启动活动,并在完成后再次传回数据。这是在android中的活动之间共享数据的方式。
我希望这些信息可以在将来帮助某人。
问候。