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. 以無編程方式拒絕呼叫沒有響鈴
- 3. 如何以編程方式在Android中標記呼叫URGENT
- 4. 以編程方式拒絕權限 - Android
- 5. C#Outlook - 呼叫被拒絕的呼叫
- 6. IOS語音呼叫拒絕
- 7. SipAudioCall.endCall不拒絕呼叫
- 8. 以編程方式斷開Android Marshmallow版本中的呼叫
- 9. Android:在設備上以編程方式模擬/模擬呼叫
- 10. 如何在Android中以編程方式將呼叫轉接到語音郵件
- 11. IOS以編程方式拒絕來電?
- 12. Yammer以編程方式拒絕請求
- 13. 如何以編程方式拒絕編輯頁眉和頁腳?
- 14. 在iOS7中以編程方式斷開呼叫
- 15. 以編程方式,在iphone中呼叫轉移
- 16. 如何通過編程方式拒絕通話android
- 17. 呼叫被被叫方拒絕。 (從HRESULT異常:0x80010001(RPC_E_CALL_REJECTED))
- 18. android.provider.CallLog.Calls.TYPE傳出呼叫未應答,傳出呼叫被拒絕?
- 19. 以編程方式在Python中拒絕/ nohup
- 20. 在VOIP呼叫期間以編程方式啓用揚聲器
- 21. 導出到Excel呼叫被拒絕
- 22. 呼叫被callee拒絕PowerPoint自動
- 23. Windows程序以編程方式捕獲電話呼叫數據?
- 24. 星號,呼叫下一個座席(如果有的話)將拒絕呼叫
- 25. 以編程方式更改呼叫類型
- 26. 以編程方式更改呼叫設置
- 27. 以編程方式阻止黑莓上的傳出呼叫
- 28. 以編程方式刪除iPhone上的呼叫等待嗶聲?
- 29. 以編程方式將服務呼叫添加到SharePoint呼叫中心應用程序
- 30. 是否可以使用objective-c自動拒絕呼叫?
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