2
我想知道是否有方法可以過濾(阻止)Android上的來電(考慮2.1和更高版本)。我發現使用反射的解決方案,但它似乎不是非常乾淨和可靠的解決方案。有沒有任何標準或谷歌推薦的方式來做到這一點?如何過濾呼入電話(黑名單) - 無反射
更新:任何人?
我想知道是否有方法可以過濾(阻止)Android上的來電(考慮2.1和更高版本)。我發現使用反射的解決方案,但它似乎不是非常乾淨和可靠的解決方案。有沒有任何標準或谷歌推薦的方式來做到這一點?如何過濾呼入電話(黑名單) - 無反射
更新:任何人?
使用下面的廣播接收器來獲取來電號碼,並將其與在你創建的過濾器列表中的號碼
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
if (extras != null) {
String state = extras.getString(TelephonyManager.EXTRA_STATE);
Log.w("DEBUG", state);
if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
String phoneNumber = extras
.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
Toast.makeText(context, phoneNumber, 2000).show();
Log.w("DEBUG", phoneNumber);
}
}
}
希望這將有助於進行比較。您需要通過應用程序的用戶界面在黑名單中創建一個數字列表。
1)在您的應用程序標籤中也使用清單文件中的以下內容。 <接收機機器人: 「BroadCastClassActivity」 名稱=> <意圖濾波器> <操作機器人:名稱= 「android.intent.action.PHONE_STATE」> 意圖濾波器> 2)並添加權限:「android.permission.READ_PHONE_STATE」 – spacetime 2012-07-18 06:59:36
謝謝,這是目前爲止的標準方式。但是現在我需要阻止那個呼叫,如果它在黑名單上 - 這是不必要的反射通常會觸發的部分。 – 2012-07-18 07:19:02
考慮這個流程:1)應用程序確實有接口來添加您需要阻止的數字2)存儲那些數組列表中的數字3)一旦有任何呼叫傳入,我們就得到這個數字,對吧? 4)然後將該數字與我們之前存儲的數組列表中的數字進行比較5)如果接收到的數字在數組列表中,則斷開連接,否則繼續進行呼叫:) – spacetime 2012-07-18 07:30:18