2016-11-14 157 views
0

我分享兩種文件從我的代碼,zip文件和3GP文件,我使用兩個相同的代碼,我在清單中定義相同FileProvider至極和XML文件sharepaths 。相同的應用程序加載的共享多個文件

共享動作提供多種選擇,每次zip文件,但音頻文件,從第一次我測試分享到Google驅動器,無需選擇彈出,谷歌的驅動程序執行,我想分享的音頻文件每一次,這是令人討厭的,因爲用戶必須始終得到選擇。

private Intent setShareIntent(ArrayList<Uri> uris){ 
    Intent shareIntent = new Intent(Intent.ACTION_SEND_MULTIPLE); 
    shareIntent.setType("audio/3gpp"); 
    shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); 
    shareIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
    return shareIntent; 
} 
private ArrayList<Uri> getChekcedRecordsUris(){ 
    SparseBooleanArray sba = pRecordsList.getCheckedItemPositions(); 
    int position; 
    ArrayList<Uri> archivesUris = new ArrayList<Uri>(); 
    for(int i = 0; i< sba.size();i++){ 
     if(sba.valueAt(i)){ 
      position = sba.keyAt(i); 
      File selectedArchive = pRecordsFilesAdapter.getItem(position); 
      archivesUris.add(FileProvider.getUriForFile(getBaseContext(), "ma.altaiir.app.appfileProvider", selectedArchive)); 
     } 
    } 
    return archivesUris; 
} 
private void shareCheckedItems(){ 
    Intent shareIntent = setShareIntent(getChekcedRecordsUris()); 
    if(shareIntent.resolveActivity(FilesActivity.this.getPackageManager()) != null){ 
     FilesActivity.this.startActivity(shareIntent); 
    }else{ 
     Toast.makeText(getBaseContext(), MyApplication.getMyAppContext().getResources().getString(R.string.toast_no_intent_app_chooser),Toast.LENGTH_SHORT).show(); 
    } 
} 

回答

0

我終於找到了錯誤,它來自我使用3GP文件的MIME類型,巫基本上都是視頻容器,所以我不得不爲使用音頻/ *或視頻/ 3GP。

音頻/ *解決我的問題,現在的意圖呈現爲用戶選擇器。

相關問題