使用 scoped Storage MediaStore 在应用程序中共享意图问题

问题描述

我正在使用 Scoped Storage MediaStore 将我的应用迁移到 android 10/11。 该文件未与任何其他应用共享。

使用以下代码共享音频文件,但未共享。

final String relativeLocation = Environment.DIRECTORY_MUSIC + File.separator  +pref.getgalleryName()  +File.separator +fileName;

//obtaining the uri to the pdf report when creating it
Uri pathToMp3 = null;
int EmailRequestCode = 200;
ContentResolver contentresolver = _context.getContentResolver();
ContentValues contentvalues = new ContentValues();
contentvalues.put(MediaStore.MediaColumns.disPLAY_NAME,fileName);
contentvalues.put(MediaStore.MediaColumns.MIME_TYPE,"audio/mp3");
contentvalues.put(MediaStore.MediaColumns.RELATIVE_PATH,Environment.DIRECTORY_DOWNLOADS + File.separator + pref.getgalleryName());
contentvalues.put(MediaStore.MediaColumns.IS_PENDING,0);
pathToMp3 = contentresolver.insert(MediaStore.Files.getContentUri("external"),contentvalues);
//contentresolver.update(pathToMp3,contentvalues,null,null);


Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setType("audio/mp3");
emailIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
emailIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
emailIntent.putExtra(Intent.EXTRA_STREAM,pathToMp3);
try{
    if (emailIntent.resolveActivity(_context.getPackageManager()) != null) {
        //startActivityForResult(emailIntent,EmailRequestCode);
        
        _context.startActivity(Intent.createChooser(emailIntent,"Share audio"
        ));
        
    }
}
catch(android.content.ActivityNotFoundException e){
    Toast.makeText(_context,"No email client available",Toast.LENGTH_SHORT).show();
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)