截至到Android 7.1,有可能最终通过来电ITelephony.endCall()方法,并给予您的应用程序的权限android.permission.CALL_PHONE和android.permission.READ_PHONE_STATE.
在做同样的事情时Android 8.0 Oreo (API 26),我得到这个错误
12-09 18:11:25.195 16833-16833/li.doerf.leavemealone E/TelephonyServiceCallHangup:缺少权限MODIFY_PHONE_STATE,无法挂断电话
由于MODIFY_PHONE_STATE是受保护的权限,我的应用无法获取.有没有办法以编程方式结束来电Android 8.0+?
应用程序检测来电并在来时显示祝酒词.内部类CallStateListener负责检测调用:
private class CallStateListener extends PhoneStateListener {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_RINGING:
// called when someone is ringing to this phone
Toast.makeText(ctx, "Incoming: " + incomingNumber, Toast.LENGTH_LONG).show();
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是现在刚出现Toast后我想取消/拒绝这个来电(任何).如何取消此来电?
全班看起来像这样:
package com.example.a;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.Toast;
public class CallHelper {
/**
* Listener to detect incoming calls.
*/
private class CallStateListener extends PhoneStateListener {
@Override …Run Code Online (Sandbox Code Playgroud)