标签:android style blog http io os ar java strong
1、通过aidl及反射实现挂断电话
具体分三步:};
aidl下载地址:http://download.csdn.net/detail/ab6326795/7993671
2、通过广播通知系统进行接听和挂断
因为Android2.3以上增加了对permissionandroid.permission.MODIFY_PHONE_STATE的限制,2.3之前的通过反射机制调用ITelephone的能力的做法已经不适用。
2.3上实现方式:
public synchronized void answerRingingCall() {
查询系统PhoneAPP应用(PhoneGlobals.java)实现了对耳机插入、多媒体按键等通知的接受和处理。其中未发现有特殊的地方,个人认为,如果系统接收到此广播应该可以进行接听或挂断操作。
// 2.3以上执行以下代码实现自动接听
Intent mintent = new Intent(Intent.ACTION_MEDIA_BUTTON);
//按下音量
KeyEvent keyEvent = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HEADSETHOOK);
mintent.putExtra("android.intent.extra.KEY_EVENT", keyEvent);
// 通话权限 允许程序拨打电话, 替换系统的拨号器界面
mContext.sendOrderedBroadcast(mintent,"android.permission.CALL_PRIVILEGED");
mintent = new Intent(Intent.ACTION_MEDIA_BUTTON);
keyEvent = new KeyEvent(KeyEvent.ACTION_UP,KeyEvent.KEYCODE_HEADSETHOOK);
mintent.putExtra("android.intent.extra.KEY_EVENT", keyEvent);
mContext.sendOrderedBroadcast(mintent,"android.permission.CALL_PRIVILEGED");
两个都需要权限
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
<!-- 拨打电话的权限 -->
<uses-permission android:name="android.permission.CALL_PHONE"/>综合两种方法就可以做出电话自动接听和挂断的APP了
标签:android style blog http io os ar java strong
原文地址:http://blog.csdn.net/tabactivity/article/details/39697239