相关疑难解决方法(0)

如何在Android 8.0 Oreo上以编程方式结束来电

截至到Android 7.1,有可能最终通过来电ITelephony.endCall()方法,并给予您的应用程序的权限android.permission.CALL_PHONEandroid.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+

android telephony android-permissions android-8.0-oreo

14
推荐指数
1
解决办法
3388
查看次数

我已经检测到任何来电时如何拒绝来电

应用程序检测来电并在来时显示祝酒词.内部类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)

android

1
推荐指数
1
解决办法
3928
查看次数