2013-04-30 40 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中的活動之間共享數據的方式。

我希望這些信息能幫助未來的人。

問候。

相關問題