Java 通过WhatsApp共享原始资源(无SD卡)

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

我试图从应用程序中共享mp3音频,问题是,音频发送时没有格式,我读到了关于将其保存到外部存储器的内容,然后将其共享,但我没有外部存储器,有没有一种方法像将其保存到内部存储器或类似的东西?谢谢代码如下:

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"));