requestPermissions не работает для READ_CALL_LOG и WRITE_CALL_LOG на Android 8.1 API 27 - PullRequest
0 голосов
/ 18 мая 2018

Я пытался получить доступ к истории вызовов, и разрешения запросов, похоже, не работают

файл манифеста:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.stanrares.firstapp">

    <uses-permission android:name="android.permission.READ_CALL_LOG" />
    <uses-permission android:name="android.permission.WRITE_CALL_LOG" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.CALL_PHONE" />

функция, которая запрашивает разрешения:

    public void EnableRuntimePermissionToAccessCallLogs()
        {
            Log.i(TAG,"EnableRuntimePermissionToAccessCallLogs called");

            if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_CALL_LOG) != PackageManager.PERMISSION_GRANTED)
            {
                Log.i(TAG,"giving read call log permission");
                // TODO: Consider calling
                //    ActivityCompat#requestPermissions
                ActivityCompat.requestPermissions(getActivity(),
                        new String[]{Manifest.permission.READ_CALL_LOG},
                        1);
                Log.i(TAG,"giving read call log permission 2");
            }

            if(ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.WRITE_CALL_LOG) != PackageManager.PERMISSION_GRANTED)
            {
                Log.i(TAG,"giving write call log permission");
                ActivityCompat.requestPermissions(getActivity(),
                        new String[]{Manifest.permission.WRITE_CALL_LOG},
                        1);
                Log.i(TAG,"giving write call log permission 2");

            }
            Log.i(TAG,"EnableRuntimePermissionToAccessCallLogs called 2");

        }

Я уже пытался с инструментами удалить пространство имен в файле манифеста

1 Ответ

0 голосов
/ 26 октября 2018

Я думаю, что вы используете что-то вроде getActivity (). GetContentResolver (). Query, чтобы получить журнал вызовов где-то в вашем коде.

Затем вам нужно предоставить ContentProvider, чтобы получить URI и реализовать запрос.Это изменилось с API26: https://developer.android.com/about/versions/oreo/android-8.0-changes#rmp

Опубликуйте свой код, и тогда мы сможем найти решение.

...