如何实现在amazon Kindle Fire上 按Home,Press键让背景音乐暂停

今天客户又有feedback过来,说在KindleFire 上面,按Home,Press 键无法让背景音乐暂停。其它机器上用以前的方法都可以实现这样的效果。


到网络上找了一段Kindle Fire的日志信息,发现跟其它机器上没有什么区别,唯一的区别是就是 日志的输出级别从 I 换成了 D

11-23 09:56:47.812 D/ActivityManager( 1377): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=com.amazon.kindle.otter/.Launcher } from pid 1377


解决方案很简单:  把I换成D

mLogcatProc = Runtime.getRuntime().exec(new String[] { "logcat","ActivityManager:D *:S" });


对于power键的处理,还是沿用以前的方法,只是你在注册 广播接收器的时候,要用封装好的常量,不要直接用字符串。

以前的代码:

private void registerIntentReceivers() 

     Log.d(TAG, "***registerIntentReceivers"); 
     IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF); 
      filter.addAction("android.intent.action.SCREEN_ON");  //注意问题就是出在这里,amazon 也修改了这些常量的具体值
     LockLisnter receiver = new LockLisnter(); //用于侦听 
     registerReceiver(receiver, filter); 
}

现在的代码:

private void registerIntentReceivers()
    {
        Log.d(TAG, "***registerIntentReceivers");
        IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
        filter.addAction(Intent.ACTION_SCREEN_ON);

        SceenStateChangeListener receiver = new SceenStateChangeListener(this.getApplicationContext());  
        registerReceiver(receiver, filter);
    } 


上面的解决方案,原来都是自己的猜想,后来得到客户的反馈,证明猜想完全正确!

你可能感兴趣的:(如何实现在amazon Kindle Fire上 按Home,Press键让背景音乐暂停)