2
我试图共享由我的应用程序保存的音频文件。该文件被添加到媒体商店,所有的应用程序都可以访问它。使用Intent.ACTION_SEND进行文件共享给BBM上的访问拒绝
Intent mediaScannerIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri fileContentUri = Uri.fromFile(finalFile);
mediaScannerIntent.setData(fileContentUri);
this.sendBroadcast(mediaScannerIntent);
我用Intent.ACTION_SEND将文件分享给其他应用:
public void shareRecording(View view) {
Intent i = new Intent(Intent.ACTION_SEND);
i.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
i.setType("audio/mp3");
i.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///" + recording.getFilePath()));
try {
startActivity(Intent.createChooser(i, "Share " + recording.getName()));
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(this, "There are no app installed to share your audio file.", Toast.LENGTH_SHORT).show();
}
}
所有工作良好,如Gmail,雅虎邮件,WhatsApp的,... 除了BBM所有的应用程序,它给拒绝访问。 我需要做些什么来使它在BBM上工作?
感谢您的任何帮助。
UPDATE:
我用
Uri fileUri = Uri.parse("content://" + recording.getFilePath());
,而不是
Uri fileUri = Uri.parse("file:///" + recording.getFilePath());
和它的工作对BBM但不是行吟诗人应用
那么究竟是什么就吃之间的区别使用“file:///”和“co ntent://“? 我该如何使用它来获取适用于所有应用程序的共享?