2013-04-30 55 views
0

我正在开发一个应用程序,该应用程序公开共享意向。当用户从任何应用打开“共享”菜单时,他会在列表中看到我的应用。从一个应用程序获取数据,并使用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()); 
     } 
    } 

回答

0

我已成功通过检查数据的方案来实现这一功能。如果方案是“文件”,我们得到Path并将其传递给Share Intent,如果方案是“content”,那么我们将它转​​换为使用this的路径,然后将其发送到Share Intent。

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

我希望这些信息能帮助未来的人。

问候。

相关问题