来电接听问题

HeroicDragon 2015-08-13 05:03:25
在安卓4.0以上的版本,使用以下方式接听来电

Intent meidaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
KeyEvent keyEvent = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK);
meidaButtonIntent.putExtra(Intent.EXTRA_KEY_EVENT, keyEvent);
context.sendOrderedBroadcast(meidaButtonIntent, null);


结果,发现在华为手机上无法接听。

经过试验,分别试了222个KEYCODE都无法接听电话,在这些键中,有几个是音乐播放键,这些键都能生效,唯独KEYCODE_HEADSETHOOK这个键不能接听电话。

跪求大家赐教!
...全文
152 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
HeroicDragon 2015-08-15
  • 打赏
  • 举报
回复
帖子要沉了 ,问题未解决,伤心欲绝
HeroicDragon 2015-08-14
  • 打赏
  • 举报
回复
看了,没有报任何异常,我一直坚信有一个键可以启接听,害得我把222个键值全部试完,结果还是失败告终
sagittarius1988 2015-08-13
  • 打赏
  • 举报
回复
可以连上电脑,用华为自带的先操作一遍,然后看看logcat,相信里面有你想要的内容
sagittarius1988 2015-08-13
  • 打赏
  • 举报
回复
可以连上电脑,用华为自带的先操作一遍,然后看看logcat,相信里面有你想要的内容
Arnold9009 2015-08-13
  • 打赏
  • 举报
回复
华为的经常改好多东东
HeroicDragon 2015-08-13
  • 打赏
  • 举报
回复
试过华为 MT 7 安卓4.4.2 , 荣耀7 安卓5.0.2 0 两款华为手机都无法接听, 但是小米note android 4.4.4 ,一切正常。
HeroicDragon 2015-08-13
  • 打赏
  • 举报
回复
try { Intent intent = new Intent("android.intent.action.MEDIA_BUTTON"); KeyEvent keyEvent = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HEADSETHOOK); intent.putExtra("android.intent.extra.KEY_EVENT",keyEvent); context.sendOrderedBroadcast(intent, "android.permission.CALL_PRIVILEGED"); intent = new Intent("android.intent.action.MEDIA_BUTTON"); keyEvent = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK); intent.putExtra("android.intent.extra.KEY_EVENT",keyEvent); context.sendOrderedBroadcast(intent, "android.permission.CALL_PRIVILEGED"); Intent localIntent1 = new Intent(Intent.ACTION_HEADSET_PLUG); localIntent1.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); localIntent1.putExtra("state", 1); localIntent1.putExtra("microphone", 1); localIntent1.putExtra("name", "Headset"); context.sendOrderedBroadcast(localIntent1, "android.permission.CALL_PRIVILEGED"); Intent localIntent2 = new Intent(Intent.ACTION_MEDIA_BUTTON); KeyEvent localKeyEvent1 = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HEADSETHOOK); localIntent2.putExtra("android.intent.extra.KEY_EVENT",localKeyEvent1); context.sendOrderedBroadcast(localIntent2, "android.permission.CALL_PRIVILEGED"); Intent localIntent3 = new Intent(Intent.ACTION_MEDIA_BUTTON); KeyEvent localKeyEvent2 = new KeyEvent(KeyEvent.ACTION_UP,KeyEvent.KEYCODE_HEADSETHOOK); localIntent3.putExtra("android.intent.extra.KEY_EVENT", localKeyEvent2); context.sendOrderedBroadcast(localIntent3, "android.permission.CALL_PRIVILEGED"); Intent localIntent4 = new Intent(Intent.ACTION_HEADSET_PLUG); localIntent4.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); localIntent4.putExtra("state", 0); localIntent4.putExtra("microphone", 1); localIntent4.putExtra("name", "Headset"); context.sendOrderedBroadcast(localIntent4, "android.permission.CALL_PRIVILEGED"); } catch (Exception e2) { e2.printStackTrace(); Intent meidaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON); KeyEvent keyEvent = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK); meidaButtonIntent.putExtra(Intent.EXTRA_KEY_EVENT,keyEvent); context.sendOrderedBroadcast(meidaButtonIntent, null); } 以上是上帖中给的方法,结果还是无法接听
HeroicDragon 2015-08-13
  • 打赏
  • 举报
回复
好的,十分感谢
tony4geek 2015-08-13
  • 打赏
  • 举报
回复
tony4geek 2015-08-13
  • 打赏
  • 举报
回复

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧