android grantPermission()错误&&;java.lang.IllegalStateException:

android grantPermission()错误&&;java.lang.IllegalStateException:,exception,permissions,state,grant,Exception,Permissions,State,Grant,你好 这是我自己回答的另一个问题。我希望你能得到一些帮助。 所以这是关于sdk23或更高版本sdk设备的一个权限错误。,因为权限已更改并非所有的权限都可以在安装时接受。这一变化表明: 在应用程序运行时,用户可以选择接受或拒绝一个权限。以下是自动授予的权限: android.permission.ACCESS_LOCATION_EXTRA_COMMANDS android.permission.ACCESS_NETWORK_STATE android.permission.ACCESS_NOTIF

你好
这是我自己回答的另一个问题。我希望你能得到一些帮助。 所以这是关于sdk23或更高版本sdk设备的一个权限错误。,因为权限已更改
并非所有的权限都可以在安装时接受。这一变化表明:
在应用程序运行时,用户可以选择接受或拒绝一个权限。
以下是自动授予的权限:
android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_NOTIFICATION_POLICY
android.permission.ACCESS_WIFI_STATE
android.permission.ACCESS_WIMAX_STATE
android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.BROADCAST_STICKY
android.permission.CHANGE_NETWORK_STATE
android.permission.CHANGE_WIFI_MULTICAST_STATE
android.permission.CHANGE_WIFI_STATE
android.permission.CHANGE_WIMAX_STATE
android.permission.DISABLE_KEYGUARD
android.permission.EXPAND_STATUS_BAR
android.permission.FLASHLIGHT
android.permission.GET_ACCOUNTS
android.permission.GET_PACKAGE_SIZE
android.permission.INTERNET
android.permission.KILL_BACKGROUND_PROCESSES
android.permission.MODIFY_AUDIO_SETTINGS
android.permission.NFC
android.permission.READ_SYNC_SETTINGS
android.permission.READ_SYNC_STATS
android.permission.RECEIVE_BOOT_COMPLETED
android.permission.REORDER_TASKS
android.permission.REQUEST_INSTALL_PACKAGES
android.permission.SET_TIME_ZONE
android.permission.SET_WALLPAPER
android.permission.SET_WALLPAPER_HINTS
android.permission.SUBSCRIBED_FEEDS_READ
android.permission.TRANSMIT_IR
android.permission.USE_FINGERPRINT
android.permission.VIBRATE
android.permission.WAKE_LOCK
android.permission.WRITE_SYNC_SETTINGS
com.android.alarm.permission.SET_ALARM
com.android.launcher.permission.INSTALL_SHORTCUT
com.android.launcher.permission.UNINSTALL_SHORTCUT


因此我们没有其他事情要做,只需询问用户想做什么。。这是基金设立的。让我们开始编码吧答案部分的代码
但是不要忘记在清单中为旧的android sdk-s写入权限

所以下面是代码:
创建不存在值的新整数。如果有一个int值为1,则此int不能为1。。那么这个int将是其他的东西

int YOUR_PERMISSION_REQUEST = 1212;
&&在onCreate方法中

//If the sdk level equals or higher than 23.
    if (Build.VERSION.SDK_INT >= 23){
        //The permission we wanna accept
        int hasWriteContactsPermission = checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE);

        //If is not accepted for this app ask the user he wanna accept it or not.
        if (hasWriteContactsPermission != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(new String[] {Manifest.permission.READ_EXTERNAL_STORAGE},
                    YOUR_PERMISSION_REQUEST);
        }
因此,您可以要求用户接受一个权限。如果要询问其他权限,请将代码中的读取外部存储权限更改为您的权限。祝你好运希望我能帮助你。

如果你想再请求一次许可,请这样做:输入If标签:yourladpermission!=PackageManager.YOUR_OLD_权限和YourOther权限!=PackageManager.YOUR_permissions和put 2 requestPermissions(新字符串[]{Manifest.permission.READ_EXTERNAL_STORAGE},您的_permission_请求);用你的变量