android - 获取 mp3 文件的 URI

标签 android android-intent

我知道这个问题已经被问过很多次了。基本上,我正在尝试从 SD 卡内存或手机内存中选择一个 mp3 文件。但是,当我在我的设备上尝试时,无法选择 mp3 文件。当我使用文件管理器等第三方应用程序选择 mp3 时,它可以正常工作。这是 Lollipop 文件管理器的问题还是我做错了?

fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.setType("audio/mp3");
            startActivityForResult(Intent.createChooser(intent, "Music File"), 200);
        }
    });



@Override
    protected void onActivityResult(int reqCode, int resCode, Intent data) {


            if (resCode == Activity.RESULT_OK && data != null) {
                if (reqCode == 200) {
                    Uri audioFileUri = data.getData();
                    Toast.makeText(getApplicationContext(), audioFileUri.getPath().toString(), Toast.LENGTH_SHORT).show();

                }
               }
    }

编辑:

我所说的不可选择的意思(例如:下面的 mp3 文件是 JustinTimberlake)是: iMAGE

最佳答案

mp3 的 mime 类型是 audio/mpeg。 你可以使用

intent.setType("audio/mpeg");

String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension("mp3");
intent.setType(mimeType);

关于android - 获取 mp3 文件的 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34516865/

相关文章:

android:除了使用extra()方法之外,还可以发送和获取字符串

java - 在将搜索字符串指定到我的 EditText 后,如何开始在回收器 View 中搜索匹配项

android - 清除操作按钮上的通知点击

Android退出白日梦模式

java - findviewbyid 在对话框中返回 null

android - 使用多个 RecyclerView 和其他 View 保存/恢复 NestedScrollView 的状态

android - OnProvideAssistDataListener 示例

android - Android SensorManager 中的 getSensorList() 与 getDefaultSensor()

android - sqlite:SQLiteDase.query 未按预期工作

javascript - 从 Facebook 帖子打开 Chrome/Firefox (Android OS) 的 URL 方案