ActivityCompat.requestPermissions, не показывающий диалоговое окно

if (ContextCompat.checkSelfPermission(RegisterActivity.this,      Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_DENIED){
            ActivityCompat.requestPermissions(this,
                    new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE_PERMISSION);

я пытаюсь использовать эту функцию на nexus 5 api 23 и ее просто не показ мне диалоговое окно как ее воображаемое, чтобы сделать, это ничего просто не делает. что могло вызвать проблему? (этот код находится в действии Java), я пытался изменить свой минимальный API на 23, и используйте requestPermissions () без ActivityCompat, но все еще работы.

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
    applicationId "com.example.idanayzen.photomap"
    minSdkVersion 23
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.google.android.gms:play-services:8.4.0'
compile 'com.android.support:design:23.1.1'
}

и Декларация:

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

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_SMS" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">


    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="@string/google_maps_key" />

    <activity
        android:name=".MapsActivity"
        android:label="@string/title_activity_maps" />
    <activity android:name=".RegisterActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".WrongPhoneNum"></activity>
</application>

</manifest>
60
задан 20 March 2019 в 16:34

3 ответа

Не забывайте писать полномочия без дополнительных пространств в декларации. В моем случае я имел:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE " />

, Но взгляд, в конце, существует дополнительное пространство. Просто запишите этому правильный путь

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

, И это работает теперь

0
ответ дан 1 November 2019 в 09:38

Для меня проблема состояла в том, что прямо после выполнения запроса, мой основной вид деятельности запустил другое действие. Это заменило диалоговое окно, таким образом, оно никогда не замечалось.

0
ответ дан 1 November 2019 в 09:38

Возможно, это решение могло помочь любому, а не:

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);

использование:

ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);

, таким образом, мы добавляем android. к Manifest.permission.WRITE_EXTERNAL_STORAGE

0
ответ дан 1 November 2019 в 09:38

Другие вопросы по тегам:

Похожие вопросы: