您好,登錄后才能下訂單哦!
這篇文章主要介紹了Android如何實現掛斷電話的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Android如何實現掛斷電話文章都會有所收獲,下面我們一起來看看吧。
首先,需要在AndroidManifest.xml靜態申請電話權限,否則無法動態申請權限,以下代碼位置不能放錯(在application之外):
<uses-permission android:name="android.permission.CALL_PHONE" />
然后,在java代碼中寫動態申請權限的邏輯(這是官網的寫法)
public void requestPower() { //判斷是否已經賦予權限 if (ContextCompat.checkSelfPermission(this, Manifest.permission.上面電話權限字符) != PackageManager.PERMISSION_GRANTED) { //如果應用之前請求過此權限但用戶拒絕了請求,此方法將返回 true。 if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.上面電話權限字符)) {//這里可以寫個對話框之類的項向用戶解釋為什么要申請權限,并在對話框的確認鍵后續再次申請權限.它在用戶選擇"不再詢問"的情況下返回false } else { //申請權限,字符串數組內是一個或多個要申請的權限,1是申請權限結果的返回參數,在onRequestPermissionsResult可以得知申請結果 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.上面電話字符,}, 1); } } }
// ITelephony.aidl package com.android.internal.telephony; // Declare any non-default types here with import statements interface ITelephony { boolean endCall(); void answerRingingCall(); }
private void endCall() { try { //通過反射得到隱藏的API,并獲得隱藏類的Class對象 Class<?> clazz = Class.forName("android.os.ServiceManager"); //獲取 Method類對象(方法對象) Method method = clazz.getMethod("getService", String.class); //調用方法獲到iBinder對象 IBinder ibinder = (IBinder) method.invoke(null, Context.TELEPHONY_SERVICE); ITelephony iTelephony = ITelephony.Stub.asInterface(ibinder); iTelephony.endCall();//結束電話 } catch (Exception e) { e.printStackTrace(); } }
記得一定要動態添加電話權限哦!不然掛電話這個操作實現不了。
關于“Android如何實現掛斷電話”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Android如何實現掛斷電話”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。