Android攔截外撥電話程序示例
攔截監(jiān)聽外撥的電話,并進行處理:
向外撥打電話時系統(tǒng)會發(fā)出一個有序廣播,雖然該廣播最終會被拔號器里的廣播接收者所接收并實現(xiàn)電話拔打,但我們可以在廣播傳遞給拔號廣播接收者之前先得到該廣播,然后清除傳遞給拔號廣播接收者的電話號碼,在拔號廣播接收者接收到該廣播時,由于電話號碼為null,因此取消電話拔打。
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:110"));
startActivity(intent);
public class OutCallReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
setResultData(null); //清除電話,廣播被傳給系統(tǒng)的接收者后,因為電話為null,取消電話拔打
// 同樣如果你想修改外拔的電話號碼,可以這樣做
// String phone = getResultData();//得到外拔電話
// setResultData(“12593”+ phone);//在電話前面加上12593
}
}
接收外拔電話廣播Intent,在AndroidManifest.xml文件中的<application>節(jié)點里訂閱此Intent:
<receiver android:name=".OutgoingCallReceiver">
<intent-filter android:priority="1">
<action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
</intent-filter>
</receiver>
并且要進行權(quán)限聲明:
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
相關(guān)文章
Android Jetpack組件之ViewModel使用詳解
Android中的ViewModel是一個可以用來存儲UI相關(guān)的數(shù)據(jù)的類。ViewModel的生命周期會比創(chuàng)建它的Activity、Fragment的生命周期長,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-04-04Android 監(jiān)聽軟鍵盤狀態(tài)的實例詳解
這篇文章主要介紹了Android 監(jiān)聽軟鍵盤狀態(tài)的實例詳解的相關(guān)資料,希望通過本文能掌握這樣的知識,需要的朋友可以參考下2017-09-09Android 中 GridView嵌套在ScrollView里只有一行的解決方法
本文給大家?guī)韮煞N有關(guān)Android 中 GridView嵌套在ScrollView里只有一行的解決方法,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧2016-10-10淺析Android App的相對布局RelativeLayout
這篇文章主要介紹了Android App的相對布局RelativeLayout,文中舉了一個登錄界面的XML布局例子,非常直觀,需要的朋友可以參考下2016-04-04