android 的requestpermissions真的没有人能解答这个奇怪的问题吗

如题,我的app想早每次resume(在oncreate也不行)的时候检查权限,如果没有权限就询问,但是他并没有询问的那个弹窗这是为啥呢

我尝试过,把CALL_PHONE 换成READ_EXTERNAL_STORAGE,它就可以显示提示允许还是拒绝读写内存的那个权限提示。这是为什么呢?我调试的设备是小米5an
droid7.0的
下面 是关键代码

 package com.example.administrator.myapplication;



import android.Manifest;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;

import java.util.Arrays;


import static android.content.pm.PackageManager.PERMISSION_GRANTED;


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (Build.VERSION.SDK_INT >= 23) {
            if (PERMISSION_GRANTED == ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE)) {
                //has permission, do operation directly
                Toast.makeText(this,"alreadyge",Toast.LENGTH_SHORT).show();
            } else {
                //do not have permission
                ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CALL_PHONE}, 11);
                Toast.makeText(this,"2",Toast.LENGTH_SHORT).show();
            }
        }
    }





}

下面是配置文件

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.administrator.myapplication">
    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
    <uses-permission android:name="android.permission.CALL_PHONE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>

下面是build.gradle

 apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.example.administrator.myapplication"
        minSdkVersion 17
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.3.1'
    testCompile 'junit:junit:4.12'
}

确定你的app是运行在6.0+的系统手机上?

你的Call phone仅仅只适用于打电话,而可以的那个权限很大的

这个我知道。。。
请求权限(使用Activity方法):
requestPermissions(permissions, 1);

部分手机请求之后判断权限是否通过不能用:

 ContextCompat.checkSelfPermission(target.getContext(), mPermissions[i]);

改为:

 boolean granted = PermissionChecker.checkPermission(getContext().getApplicationContext(), "android.permission.CALL_PHONE", android.os.Process.myPid(), android.os.Process.myUid(), getPackageName())==PackageManager.PERMISSION_GRANTED;

我也是mi5,亲测可行。
建议使用github开源的AndroidUtilCode的PermissionUtil请求权限超容易,小米也可以用:

 PermissionUtils.permission(PermissionConstants.CALENDAR)
                        .rationale(new PermissionUtils.OnRationaleListener() {
                            @Override
                            public void rationale(final ShouldRequest shouldRequest) {
                                DialogHelper.showRationaleDialog(shouldRequest);
                            }
                        })
                        .callback(new PermissionUtils.FullCallback() {
                            @Override
                            public void onGranted(List<String> permissionsGranted) {
                                updateAboutPermission();
                                LogUtils.d(permissionsGranted);
                            }

                            @Override
                            public void onDenied(List<String> permissionsDeniedForever,
                                                 List<String> permissionsDenied) {
                                if (!permissionsDeniedForever.isEmpty()) {
                                    DialogHelper.showOpenAppSettingDialog();
                                }
                                LogUtils.d(permissionsDeniedForever, permissionsDenied);
                            }
                        })
                        .theme(new PermissionUtils.ThemeCallback() {
                            @Override
                            public void onActivityCreate(Activity activity) {
                                ScreenUtils.setFullScreen(activity);
                            }
                        })
                        .request();