uni-ap撥打電話、權限檢測及電話狀態監聽


plus.android.requestPermissions(['android.permission.CALL_PHONE'], function(e){
// console.log(e)
if(e.deniedAlways.length>0){ //權限被永久拒絕
let Uri = plus.android.importClass("android.net.Uri");
let Settings = plus.android.importClass("android.provider.Settings");
let context = plus.android.runtimeMainActivity();

let packageURI = Uri.parse("package:" + 'com.ttlth.platform');
let intent = plus.android.newObject("android.content.Intent", Settings.ACTION_APPLICATION_DETAILS_SETTINGS, packageURI);
context.startActivity(intent);
console.log('Always Denied!!! '+e.deniedAlways.toString());
}
if(e.deniedPresent.length>0){ //權限被臨時拒絕
// 彈出提示框解釋為何需要定位權限,可再次調用plus.android.requestPermissions申請權限
console.log('Present Denied!!! '+e.deniedPresent.toString());
}
if(e.granted.length>0){ //權限被允許
//調用依賴獲取定位權限的代碼
// 導入Activity、Intent類
let Intent = plus.android.importClass("android.content.Intent");
let Uri = plus.android.importClass("android.net.Uri");
// 獲取主Activity對象的實例
let main = plus.android.runtimeMainActivity();
// 創建Intent
let uri = Uri.parse("tel:"+phonex); // 這里可修改電話號碼
let call = new Intent("android.intent.action.CALL",uri);
// 調用startActivity方法撥打電話
main.startActivity( call );
console.log('Granted!!! '+e.granted.toString());
}

let maintest = plus.android.runtimeMainActivity();
let Contexttest = plus.android.importClass("android.content.Context");
let telephonyManager = plus.android.importClass("android.telephony.TelephonyManager");
let telManager=plus.android.runtimeMainActivity().getSystemService(Contexttest.TELEPHONY_SERVICE);
let receiver=plus.android.implements('io.dcloud.android.content.BroadcastReceiver', {
onReceive: function(Contexttest, intent) {
plus.android.importClass(intent);
console.log(intent.getAction());
// let telephonyManager = plus.android.importClass("android.telephony.TelephonyManager");
// let telephonyManager=plus.android.runtimeMainActivity().getSystemService(Contexttest.TELEPHONY_SERVICE);
let phonetype=telManager.getCallState();
let phoneNumber = intent.getStringExtra(telephonyManager.EXTRA_INCOMING_NUMBER);
console.log("phonetype:"+phonetype); //電話狀態 0->空閑狀態 1->振鈴狀態 2->通話存在
console.log(); //電話號
switch (phonetype) {
case 0:
_this.getCallLog();
console.log('aaa')
break;
case 1:
console.log('bbb')
break;
case 2:
console.log('ccc')
break;
}

// _t.state.push({state:phonetype == 0?'空閑狀態':phonetype == 1?'振鈴狀態':'通話存在', time:dateFormat('hh:mm:ss')})
}
});
let IntentFilter = plus.android.importClass('android.content.IntentFilter');
let filter = new IntentFilter();
filter.addAction(telephonyManager.ACTION_PHONE_STATE_CHANGED);
maintest.registerReceiver(receiver, filter);

}, function(e){
console.log('Request Permissions error:'+JSON.stringify(e));
});


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM