Java 通过WhatsApp共享原始资源(无SD卡)
我试图从应用程序中共享mp3音频,问题是,音频发送时没有格式,我读到了关于将其保存到外部存储器的内容,然后将其共享,但我没有外部存储器,有没有一种方法像将其保存到内部存储器或类似的东西?谢谢代码如下:Java 通过WhatsApp共享原始资源(无SD卡),java,android,android-studio,Java,Android,Android Studio,我试图从应用程序中共享mp3音频,问题是,音频发送时没有格式,我读到了关于将其保存到外部存储器的内容,然后将其共享,但我没有外部存储器,有没有一种方法像将其保存到内部存储器或类似的东西?谢谢代码如下: Intent sendIntent = new Intent(Intent.ACTION_SEND); sendIntent.setType("audio/mpeg3"); sendIntent.putExtra(Intent.EXTRA_SUBJE
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("audio/mpeg3");
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Los simuladores");
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://arg.com.cevascoit.botoneralossimuladores/" + R.raw.teagachas));
startActivity(Intent.createChooser(sendIntent, getString(R.string.app_name)));
return false;
使用如下示例中所示的文件提供程序: 首先在内部存储器中创建一个文件(例如mp3文件) 然后在清单中定义FileProvider
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="ese.fileprovider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths" />;
</provider>;
共享文件
Intent shareFile = new Intent(Intent.ACTION_SEND);
shareFile.setType("application/pdf");
shareFile.putExtra(Intent.EXTRA_STREAM, uri);
shareFile.putExtra(Intent.EXTRA_SUBJECT, "Sharing " + fileToShare.getName());
shareFile.putExtra(Intent.EXTRA_TEXT, "Sharing File");
startActivity(Intent.createChooser(shareFile, "Share File"));
“但我没有外部内存”——几乎每台安卓设备都有。“没有SD卡”-SD卡不是Android SDK所说的外部存储。哦,对不起,我是这方面的新手。那么,为什么在使用代码保存到外部存储器时会出现错误呢?您可能想问一个单独的堆栈溢出问题,在这里您提供了一个解决方案。这将包括错误的详细信息(例如堆栈跟踪)和触发错误的代码。
<files-path
name="shared files"
path="shared/" />
Uri uri = FileProvider.getUriForFile(this, "ese.fileprovider", fileToShare);
Intent shareFile = new Intent(Intent.ACTION_SEND);
shareFile.setType("application/pdf");
shareFile.putExtra(Intent.EXTRA_STREAM, uri);
shareFile.putExtra(Intent.EXTRA_SUBJECT, "Sharing " + fileToShare.getName());
shareFile.putExtra(Intent.EXTRA_TEXT, "Sharing File");
startActivity(Intent.createChooser(shareFile, "Share File"));