首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Galaxy S3上打开音乐播放器

在Galaxy S3上打开音乐播放器
EN

Stack Overflow用户
提问于 2012-09-21 22:10:07
回答 3查看 3.7K关注 0票数 0

以下代码适用于任何安卓设备(api 8),但不适用于三星>= S3 (找不到音乐播放器)。

代码语言:javascript
运行
复制
try {
    String name;
    try {
        name = (String) MediaStore.class.getDeclaredField("INTENT_ACTION_MUSIC_PLAYER").get(null);
    } catch(Exception e) {
        name = (String) Intent.class.getDeclaredField("CATEGORY_APP_MUSIC").get(null);
    }
    startActivity(new Intent(name));
} catch(Exception e) {
    // music player not found
}

三星的构造层是什么呢?有没有人有办法在Galaxy S3上打开媒体播放器?

作为更新,我已经改变了我的错误,但我仍然无法在Galaxy S3上获得mediaplayer:

代码语言:javascript
运行
复制
try {
    try {
        // 8 <= API < 15
        String action = (String) MediaStore.class.getDeclaredField("INTENT_ACTION_MUSIC_PLAYER").get(null);
        Intent intent = new Intent(action);
        startActivity(intent);
    } catch(Exception e) {
        // 15 <= API
        String category = (String) Intent.class.getDeclaredField("CATEGORY_APP_MUSIC").get(null);
        Method method = Intent.class.getMethod("makeMainSelectorActivity", String.class, String.class);
        Intent intent = (Intent) method.invoke(null, Intent.ACTION_MAIN, category);
        startActivity(intent);
    }
catch(Exception e) {
    // music player not found
}
EN

Stack Overflow用户

发布于 2012-09-21 22:55:51

CATEGORY_APP_MUSIC是一个类别。直接在这上面打开一个意图是行不通的。

根据文档:

公共静态最终字符串CATEGORY_APP_MUSIC

自: API级别15与ACTION_MAIN一起使用以启动音乐应用程序。该活动应能够播放、浏览或操作存储在设备上的音乐文件。

注意:这不应该用作意图的主键,因为它不会导致应用程序启动时具有正确的操作和类别。取而代之的是,将其与makeMainSelectorActivity(String,String)一起使用,以在选择器中生成具有此类别的主意图

您需要使用action MAIN打开它,并将类别设置为CATEGORY_APP_MUSIC

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12532207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档