歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android 黑名單的攔截

Android沒有對外公開結束通話的API,如果需要結束通話,必須使用AIDL與電話管理服務進行通信,並調用服務中的API實現結束通話,方法如下:

1> 從Android的源代碼中拷貝以下文件到項目中:

com.android.internal.telephony包下的ITelephony.aidl  (對應 Android 版本源碼目錄下 \base\telephony\java\com\android\internal\telephony目錄下)

android.telephony包下的NeighboringCellInfo.aidl

注意:需要在項目中建立對應的包名存放上述兩個aidl文件,

2> 調用ITelephony.endCall()結束通話:

Method method = Class.forName("android.os.ServiceManager").getMethod("getService", String.class);

IBinder binder = (IBinder)method.invoke(null, new Object[]{TELEPHONY_SERVICE});

ITelephony telephony = ITelephony.Stub.asInterface(binder);

telephony.endCall();

3> 以上只是ITelephony 的用法之一。可應用於實現電話的黑名單功能 -- 監聽電話來電狀態,判斷其若是黑名單號碼,即用上面所示當時掛斷電話。

另外還有其它很多實用的方法,例如,其 call 方法可以直接撥打出電話,獲取電話呼叫狀態等方法,本人並沒有深入研究。

在清單文件AndroidManifest.xml中添加權限:

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

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved