android - Android 11 中不支持的 MIME 类型

标签 android mime-types android-11

在 Android 11 中遇到以下问题,在 11 以下版本中工作正常。录制音频文件时。

这里有一个异常(exception)。

java.lang.IllegalArgumentException: Unsupported MIME type "audio/wav"

代码

        File outFile = new File(outPath);
        long fileSize = outFile.length();

        ContentValues values = new ContentValues();
        values.put(MediaStore.MediaColumns.DATA, outPath);
        values.put(MediaStore.MediaColumns.TITLE, title.toString());
        values.put(MediaStore.MediaColumns.SIZE, fileSize);
        values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/wav");

        values.put(MediaStore.Audio.Media.ARTIST, getApplicationInfo().name);
        values.put(MediaStore.Audio.Media.DURATION, duration);

        values.put(MediaStore.Audio.Media.IS_MUSIC, true);

        Uri uri = MediaStore.Audio.Media.getContentUriForPath(outPath);
        final Uri newUri = getContentResolver().insert(uri, values);

最佳答案

import android.webkit.MimeTypeMap;

// url = file path or suitable URL.
public static String getMIMEType(String url) {
    String mType = null;
    String mExtension = MimeTypeMap.getFileExtensionFromUrl(url);
    if (mExtension != null) {
        mType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(mExtension);
    }
    return mType;
}

关于android - Android 11 中不支持的 MIME 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64763304/

相关文章:

android - 不确定的微调器与 id.menu_refresh 大小不同?

java - 使用 Content-Type header 从 eml 文件中提取附件名称

android - 使用 ionic 和 cordova 生成面向 API 级别 30 (Android 11) 的 Android bundle

Android 11 - native C++ 库的 System.loadLibrary 需要 60 多秒,在 Android 10 及更低版本上运行速度非常快

android - 非 Activity 类中的 findViewById

Android ParseQuery 查找至少有一件商品的商店

java - 出于测试目的将 JSON 对象响应传递给 TextView 时出错

javascript - 应用程序/javascript 或文本/javascript

linux - 如何从终端更改文件的 MIME 类型?

android - 如何创建文件夹(Android R - Api 30)?