Can';t使用StartCartivity启动android默认音乐播放器
我想让android默认音乐播放器开始播放。我使用了以下代码:Can';t使用StartCartivity启动android默认音乐播放器,android,android-intent,Android,Android Intent,我想让android默认音乐播放器开始播放。我使用了以下代码: if (((AudioManager) context .getSystemService(context.AUDIO_SERVICE)).isMusicActive()) { // pause Intent i = new Intent("com.android.music.musicservicecommand"); i.putExtra("comm
if (((AudioManager) context
.getSystemService(context.AUDIO_SERVICE)).isMusicActive()) {
// pause
Intent i = new Intent("com.android.music.musicservicecommand");
i.putExtra("command", "pause");
context.sendBroadcast(i);
} else {
// play
Intent i = new Intent("com.android.music.musicservicecommand");
i.putExtra("command", "play");
context.sendBroadcast(i);
}
当音乐播放器应用程序在前台或后台运行时,它可以正常工作,否则不行
所以我在else语句中使用了以下语句:
Intent intent = new Intent("android.intent.category.APP_MUSIC");
inintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(in);
但它不工作,应用程序崩溃。我需要使用许可证吗?如果是,什么许可?如果没有,有什么问题
以下是stacktrace:
D/AudioManager(20102): isMusicActive()? --> false
W/CpuWake ( 185): >>acquireCpuPerfWakeLock!
W/CpuWake ( 185): <<acquireCpuPerfWakeLock!
I/ActivityManager( 185): START intent from pid 20102
W/System.err(20102): android.content.ActivityNotFoundException: No Activity found to handle Intent
{ act=android.intent.category.APP_MUSIC flg=0x10000000 }
D/AudioManager(20102):isMusicActive()?-->错误的
W/CpuWake(185):>>获取cpuperfwakelock!
W/CpuWake(185):对于低于15的api,使用此选项
Intent intent = new Intent("android.intent.action.MUSIC_PLAYER");
startActivity(intent);
然后使用android.intent.category.APP\u音乐。
试试这个,com.android.music.MediaPlaybackActivity
其中com.android.music
是我的设备中Deafolt player的软件包名ICS 4.0.4
解决了这个问题:
i = new Intent(Intent.ACTION_VIEW);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri u = Uri.withAppendedPath(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,"1");
context.startActivity(i);
另外,它不依赖于音乐播放器的软件包名称,在所有设备上都能正常工作。不起作用,当它尝试启动音乐播放器时,应用程序仍然会崩溃。你能发布我做的StackTraceEyes吗,同样的结果。我用
com.htc.music
试过。导致空指针异常