0

Android 7.1 までは、ITelephony.endCall() メソッドを使用してアプリにパーミッション android.permission.CALL_PHONE と android.permission.READ_PHONE_STATE を与えることで、着信を終了することができました。

Android 8.0 Oreo (API 26) で同じことをすると、このエラーが発生します

105) 12-14 17:37:26.161 20962-20962/com.xinthe.carmode W/System.err: android.os.Looper.loop(Looper.java:164) 12-14 17:37:26.161 20962- 20962/com.xinthe.carmode W/System.err: android.app.ActivityThread.main(ActivityThread.java:6809) 12-14 17:37:26.161 20962-20962/com.xinthe.carmode W/System.err : java.lang.reflect.Method.invoke(Native Method) 12-14 17:37:26.161 20962-20962/com.xinthe.carmode W/System.err で: com.android.internal.os.Zygote$MethodAndArgsCaller で実行 (Zygote.java:240) 12-14 17:37:26.161 20962-20962/com.xinthe.carmode W/System.err: com.android.internal.os.ZygoteInit.main (ZygoteInit.java:767) ) 12-14 17:37:26.162 20962-20962/com.xinthe.carmode W/System.err: 原因: java.lang.SecurityException: ユーザー 10304 も現在のプロセスも android.permission.CALL_PHONE を持っていません。12-14 17:37:26。

READ_PHONE_STATE ランタイム許可のコードは次のとおりです。

String[] PERMISSIONS = {Manifest.permission.READ_CONTACTS, Manifest.permission.READ_PHONE_STATE,
        Manifest.permission.ANSWER_PHONE_CALLS};
void permissionCheck() {

    if (!hasPermissions(this, PERMISSIONS)) {
        ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
    }
}

public static boolean hasPermissions(Context context, String... permissions) {
    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
        for (String permission : permissions) {
            if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
                return false;
            }
        }
    }
    return true;
}

誰でも私を助けてもらえますか?

4

2 に答える 2

0

考えられる解決策の 1 つは、Android Accessibility Service を使用することです。Cancel call ボタンのリソース ID を見つけて、11y Service 経由でそれをクリックします。

Greenify アプリと同じように、Android Accessibility Service を使用して「強制停止」ボタンを押すこのリンクを確認してください。

AccessibilityServiceを使用して設定でボタンをクリックするには?

お役に立てれば!

于 2017-12-18T08:03:54.427 に答える