Android掛斷電話最新實現(xiàn)方法
1.Android 動態(tài)申請權(quán)限
首先,需要在AndroidManifest.xml靜態(tài)申請電話權(quán)限,否則無法動態(tài)申請權(quán)限,以下代碼位置不能放錯(在application之外):
<uses-permission android:name="android.permission.CALL_PHONE" />
然后,在java代碼中寫動態(tài)申請權(quán)限的邏輯(這是官網(wǎng)的寫法)
public void requestPower() {
//判斷是否已經(jīng)賦予權(quán)限
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.上面電話權(quán)限字符)
!= PackageManager.PERMISSION_GRANTED) {
//如果應用之前請求過此權(quán)限但用戶拒絕了請求,此方法將返回 true。
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.上面電話權(quán)限字符)) {//這里可以寫個對話框之類的項向用戶解釋為什么要申請權(quán)限,并在對話框的確認鍵后續(xù)再次申請權(quán)限.它在用戶選擇"不再詢問"的情況下返回false
} else {
//申請權(quán)限,字符串數(shù)組內(nèi)是一個或多個要申請的權(quán)限,1是申請權(quán)限結(jié)果的返回參數(shù),在onRequestPermissionsResult可以得知申請結(jié)果
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.上面電話字符,}, 1);
}
}
}示例圖:


2.創(chuàng)建一個AIDL文件ITelephony包名必須是(com.android.internal.telephony)
// ITelephony.aidl
package com.android.internal.telephony;
// Declare any non-default types here with import statements
interface ITelephony {
boolean endCall();
void answerRingingCall();
}示例圖:

3.寫java代碼實現(xiàn)掛斷電話
private void endCall() {
try {
//通過反射得到隱藏的API,并獲得隱藏類的Class對象
Class<?> clazz = Class.forName("android.os.ServiceManager");
//獲取 Method類對象(方法對象)
Method method = clazz.getMethod("getService", String.class);
//調(diào)用方法獲到iBinder對象
IBinder ibinder = (IBinder) method.invoke(null, Context.TELEPHONY_SERVICE);
ITelephony iTelephony = ITelephony.Stub.asInterface(ibinder);
iTelephony.endCall();//結(jié)束電話
} catch (Exception e) {
e.printStackTrace();
}
}記得一定要動態(tài)添加電話權(quán)限哦!不然掛電話這個操作實現(xiàn)不了。
總結(jié)
到此這篇關(guān)于Android掛斷電話最新實現(xiàn)方法的文章就介紹到這了,更多相關(guān)Android掛斷電話最新內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android編程實現(xiàn)Toast自定義布局簡單示例
這篇文章主要介紹了Android編程實現(xiàn)Toast自定義布局的方法,結(jié)合簡單實例形式分析了Toast自定義布局的實現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-02-02
Android訪問php取回json數(shù)據(jù)實例
Android訪問php取回json數(shù)據(jù),實現(xiàn)代碼如下,遇到訪問網(wǎng)絡(luò)的權(quán)限不足在AndroidManifest.xml中,需要進行如下配置2013-06-06

