5
A
回答
15
首先创建这个接口:
public interface ITelephony {
boolean endCall();
void answerRingingCall();
void silenceRinger();
}
然后建立这个类,它扩展了BroadcastReceiver
public class IncomingCallReceiver extends BroadcastReceiver {
private ITelephony telephonyService;
private String blacklistednumber = "+458664455";
@Override
public void onReceive(Context context, Intent intent) {
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
try {
Class c = Class.forName(tm.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
ITelephony telephonyService = (ITelephony) m.invoke(tm);
Bundle bundle = intent.getExtras();
String phoneNumber = bundle.getString("incoming_number");
Log.e("INCOMING", phoneNumber);
if ((phoneNumber != null) && phoneNumber.equals(blacklistednumber)) {
telephonyService.silenceRinger();
telephonyService.endCall();
Log.e("HANG UP", phoneNumber);
}
} catch (Exception e) {
e.printStackTrace();
}
}
这只会阻止单个PHONENUMBER,但你明白了吧。
在您的清单补充一点:
<receiver android:name=".IncomingCallReceiver">
<intent-filter android:priority="999">
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
<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" />
<uses-permission android:name="android.permission.PROCESS_INCOMING_CALLS" />
2
从here下载类ITelephony的。
然后把它放在一个包装(使一个新的封装)的com.android.internal.telephony.
然后包导入到合适的类和拒绝呼叫使用endCall()
方法
相关问题
- 1. 如何在android中以编程方式拒绝传入呼叫?
- 2. 以编程方式拒绝权限 - Android
- 3. C#Outlook - 呼叫被拒绝的呼叫
- 4. SipAudioCall.endCall不拒绝呼叫
- 5. 以编程方式断开Android Marshmallow版本中的呼叫
- 6. Yammer以编程方式拒绝请求
- 7. IOS以编程方式拒绝来电?
- 8. 如何以编程方式拒绝编辑页眉和页脚?
- 9. 如何通过编程方式拒绝通话android
- 10. 以编程方式在Python中拒绝/ nohup
- 11. 导出到Excel呼叫被拒绝
- 12. 呼叫被callee拒绝PowerPoint自动
- 13. 在VOIP呼叫期间以编程方式启用扬声器
- 14. Windows程序以编程方式捕获电话呼叫数据?
- 15. 星号,呼叫下一个座席(如果有的话)将拒绝呼叫
- 16. 以编程方式更改呼叫类型
- 17. 以编程方式阻止黑莓上的传出呼叫
- 18. 以编程方式将服务呼叫添加到SharePoint呼叫中心应用程序
- 19. 是否可以使用objective-c自动拒绝呼叫?
- 20. 如何在Android L中以编程方式打开传入呼叫的扬声器?
- 21. iPhone如何以编程方式处理短信/呼叫警报通知
- 22. 以编程方式创建SPAlert时访问被拒绝错误
- 23. 以编程方式在android
- 24. 得到呼叫由被叫例外VSTO(Word应用程序)拒绝
- 25. 如何在android中阻止呼叫
- 26. iphone编程 - 如何记录呼叫
- 27. 在拒绝免责声明后以编程方式退出iPhone应用程序
- 28. Android中呼叫拒绝或切换按钮的键码是什么?
- 29. 以编程方式断开通过iOS应用程序的呼叫
- 30. 如何在Android中以编程方式设置样式属性?
ContentObserver是单词的时候你最能实践 –
可能重复[如何在android中阻止调用](http://stackoverflow.com/questions/1083527/how-to-block-calls-in-android) –
'MODIFY_PHONE_STATE' [权限仅限于系统应用](http:///stackoverflow.com/questions/4715250/how-to-grant-modify-phone-state-permission-for-apps-ran-on-gingerbread)(适用于android 2.3及以上版本)。如果你想只用于你有权访问的手机,你可以[制作你的应用系统应用](http://projectmaxs.org/documentation/systemapp.html) – tchelidze