相同的应用程序加载的共享多个文件
问题描述:
我分享两种文件从我的代码,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();
}
}
答
我终于找到了错误,它来自我使用3GP文件的MIME类型,巫基本上都是视频容器,所以我不得不为使用音频/ *或视频/ 3GP。
音频/ *解决我的问题,现在的意图呈现为用户选择器。