1. 程式人生 > >Android 廣播+服務+AIDL一起實現手機號碼攔截

Android 廣播+服務+AIDL一起實現手機號碼攔截

在這裡跟大家分享下仿手機號碼攔截,比如你設定一個號碼,然後這個號碼打電話進來就會被自動掛掉而且手機不會有任何的記錄。

我們的實現思路是直接接受來電的廣播判斷號碼然後用官方提供的AIDL中的方法去掛掉電話。

廣播程式碼如下:

public class State extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if("android.intent.action.PHONE_STATE".equals(intent.getAction())){
            //獲取電話號碼
            String number=intent.getStringExtra("incoming_number");


            if("***********".equals(number)){

                try {
                    //電話管理者
                TelephonyManager tm= (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);

                Class<TelephonyManager> telephonyManagerClass=TelephonyManager.class;
                    //獲取TelephonyManager.getITelephony的Method物件
                    Method method=telephonyManagerClass.getDeclaredMethod("getITelephony",null);
                    //允許訪問私有的方法
                    method.setAccessible(true);
                    //呼叫getITelephony方法返回ITelephont類物件
                    ITelephony telephony= (ITelephony) method.invoke(tm,null);
                    //呼叫方法結束通話電話
                    telephony.endCall();
                } catch (Exception e) {
                    e.printStackTrace();
                }
//
            }

        }
    }
}
詳細的解釋都在註釋中,然後這裡的ITelephony是我們AIDL編譯後產生的類。

在清單檔案中要加入二條許可權和配置一下廣播就可以了。

許可權:

<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
    <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>

廣播的註冊:
 <receiver android:name=".State">
            <intent-filter>
                <action android:name="android.intent.action.PHONE_STATE"></action>
            </intent-filter>
        </receiver>
好了,電話攔截就可以實現了。

相關推薦

Android 廣播+服務+AIDL一起實現手機號碼攔截

在這裡跟大家分享下仿手機號碼攔截,比如你設定一個號碼,然後這個號碼打電話進來就會被自動掛掉而且手機不會有任何的記錄。 我們的實現思路是直接接受來電的廣播判斷號碼然後用官方提供的AIDL中的方法去掛掉電話。 廣播程式碼如下: public class State exten

android 廣播+服務+Application結合案例:獲取所有安裝應用的資訊並展示到listview上,結合SearchView進行檢索

效果圖: 思路: 1、建立自定義Application,在其onCreate()回撥方法中啟動一個Service,在Service中開啟一個Thread執行緒,在該執行緒中,使用PackageManger類(主要職責是管理應用程式包)的getInstalledAp

微信小程式-wxs實現手機號碼中間四位顯示為*號

直接加到WXML裡 <!-- 使用wxs 手機號碼中間四位顯示為*號 --> <wxs module="phone"> var toHide = function(array) { var mphone = array.substring(0, 3) +

PHP利用正則表示式實現手機號碼中間4位用星號替換顯示

因為需要為客戶保持隱私,所以手機號碼不能完全顯示在網站上,但是又不能不顯示,所以就很多網站想到了顯示但是不完整顯示,在上面用星號替換部分顯示,其實做到這個很簡單,用正則替換顯示其中的一部分即可。 PHP利用正則表示式實現手機號碼中間4位用星號替換顯示功能,請看以下原始碼: Metho

Android通訊錄模糊匹配搜尋實現號碼、首字母、簡拼、全拼)

package com.suntek.mobilemeeting.utils; public class ChineseSpelling { private static int[] pyvalue = new int[] { -20319, -20317, -20304, -20295, -20

呼叫第三方API ,實現手機號碼歸屬地及運營商查詢

執行結果: 中國電信 西雙版納 西雙版納,中國電信 程式碼: import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import ja

Android studio 通過AIDL實現加法運算

1:首先滑鼠右鍵點選專案新建AIDL Folder 2:在 aidl檔案右鍵新建AIDL File 3:刪除 或者無視裡面的內容,並寫下如下程式碼,並Rebuild project。 package com.dt.aidltest; int

Android遠端服務AIDL的使用以及配合介面回撥使用

遠端服務的介面回撥 Android 開發中的一些場景需要用到程序間通訊,一般使用AIDL(Android Interface Definition Language)。使用AIDL繫結一個遠端服務,遠端服務可以被其他應用繫結,繫結後可以使用定義在AIDL介

java程式程式碼實現手機號碼歸屬地查詢

import java.io.IOException; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.select.Elements; public cla

JS實現手機號碼中間四位顯示為*號

$(function() { var phone = $('#phone').text(); var mphone = phone.substr(0, 3) + '****' + ph

Android 自定義AIDL實現與通訊原理

以前使用到AIDL的時候感覺操作是蠻簡單的,原理好像一點看不懂,後來才發現,原來原理這麼複雜,怪不得光看程式碼看不懂。。。。。。 沒辦法,UML圖畫的太醜。。 一、先來講講Android程序之間的通訊 差不多就是這樣的一個圖,程序間通訊都得通過一個單一IBinder介面,

vue實現手機號碼的校驗(防抖函式的應用場景)

  上一篇博文我們講到了節流函式的應用場景,我們知道了節流函式可以用在模糊查詢、scroller、onresize等場景;今天這篇我們來講防抖函式的應用場景::   通過上一篇博文的學習,我們知道了防抖函式的原理:只有在事件觸發的時候才會延遲載入,如果在延遲載入之前再次觸發,則會重新整理延遲時間重新延遲,觸發

android進階3step2:Android App通訊——AIDL實現遠端服務的通訊

安卓介面描述語言AIDL 全稱:Android Interface definition language  作用:程序間的通訊介面(實現兩個程序資料共享) IBinder僅限於同一個程序間的資料共享 定義轉:https://www.jianshu.com

Android開發之AIDL實現遠端服務程序通訊(IPC)

首先什麼是AIDL呢,它是Android系統中的一種介面定義語言,用於約束兩個程序間的通訊規則,供編譯器生成程式碼。 實現Android裝置上的兩個程序間通訊(IPC),程序之間的通訊資訊首先會被轉換成AIDL協議資訊,然後傳送給對方;對方接收到AIDL協議資

Android手機號碼歸屬地查詢實現

這部分是昨天學習的,但是因為眼睛超負荷所以拖到現在,以後要合理規劃時間。 目前手機裡面的號碼歸屬地查詢主要是通過兩種方式:1.聯網查詢,2.匹配本機歸屬地資料庫。 我認為兩種結合方式最好,在本地資料庫中匹配不到的在進行聯網查詢,能大大增加匹配效果,並且不用過於增加本地資料庫

Android進階筆記:AIDL內部實現詳解 (二)

ucc == 筆記 null stack 直接 android 最好 public 接著上一篇分析的aidl的流程解析。知道了aidl主要就是利用Ibinder來實現跨進程通信的。既然是通過對Binder各種方法的封裝,那也可以不使用aidl自己通過Binder來實現跨進

Jenkins與釘釘機器人實現手機端獲取當前服務日誌

不同的 hub 使用 .com -o lib 51cto set 筆記本 馬上要過年了,各位運維們除了因為買不到回家的火車票而嚎嚎大哭之外也開始擴容服務器和提前調整監控值,目的就是為了過一個消停的春節。可是這畢竟十天左右不在公司,要是模塊真出了什麽意外肯定沒法第一找到日誌分

Android廣播(BroacastReceiver)與服務(Service)

com 還要 activit pro service 動態註冊 let onclick nds BroadcastReceiver可以理解成是一種組件,是默默的在改後臺運行的,用於在不同軟件和不同組件之間的傳遞,無法被用戶感知,因為他在系統的內部工作,BroadcastRe

Android通過Bluetooth藍芽傳送手機照片檔案到Windows PC:Java實現

Android通過Bluetooth藍芽傳送手機照片檔案到Windows PC:Java實現 本文在《Android通過藍芽傳送資料到Windows PC電腦:Java實現(連結地址:https://blog.csdn.net/zhangphil/article/details/831467

Android開發之獲取SIM卡資訊和手機號碼

獲取SIM卡資訊和手機號碼的工具類,記錄一下方便以後使用 import android.content.Context; import android.telephony.TelephonyManager; /** * Created by WangJinyong on 20