Android 获取已安装音乐播放器列表

前言

我们在运动中一般都会带上耳机听歌,那在计步器中跑步运动的时候,自然也就需要打开喜欢的音乐播放器。为了方便,我就在计步器内加了个按钮,作用是调用已安装的音乐播放器,可是我怎么查,都找不到可以打开的APP,但我的手机上明明有音乐播放器呀。折腾了半天,我只查到了系统自带的音乐播放器,别的都找不到。直到我看到了<queries>标签,才恍然大悟。

实现

AndroidManifest.xml文件中

...
<queries>
        <intent>
            <action android:name="android.intent.action.VIEW"/>
            <data android:scheme="audio/*"/>
        </intent>
        <intent>
            <action android:name="android.intent.action.MEDIA_BUTTON"/>
        </intent>
</queries>
<application
...

具体实现:

    private void getMedia(){
        String TAG = "music";
        Log.i(TAG, "test: ");
        // 创建一个 Intent 对象,设置 action 为 ACTION_VIEW,type 为 audio/*
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.parse("file://"),"audio/mp3");
        // 查询所有可以处理该 Intent 的应用程序
        PackageManager pm = getPackageManager();
        List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, 0);
        List<String> apps = new ArrayList<>();
        // 遍历查询结果,获取所有可以处理音频的应用程序的信息
        for (ResolveInfo resolveInfo : resolveInfos) {
            String packageName = resolveInfo.activityInfo.packageName;
            String className = resolveInfo.activityInfo.name;
            String label = resolveInfo.loadLabel(pm).toString();
            // 处理查询结果
            Log.i(TAG, "packageName: "+packageName);
            Log.i(TAG, "className: "+className);
            Log.i(TAG, "label: "+label);
            apps.add(label);
        }
    }

可以看到,在加了<query>标签里的内容后,就都能拿到了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TDSSS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值