Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
requestPermissions未在设备上显示权限对话框,在Android studio emulator上运行良好_Android - Fatal编程技术网

requestPermissions未在设备上显示权限对话框,在Android studio emulator上运行良好

requestPermissions未在设备上显示权限对话框,在Android studio emulator上运行良好,android,Android,活动的requestPermissions方法面临奇怪的问题。它现在显示我是否在设备上调试。如果我在Android studio emulator上调试应用程序,效果会很好。 下面是请求权限的代码 public boolean isStoragePermissionGranted() { if (Build.VERSION.SDK_INT >= 23) { if (checkSelfPermission(android.Manifest.permis

活动的requestPermissions方法面临奇怪的问题。它现在显示我是否在设备上调试。如果我在Android studio emulator上调试应用程序,效果会很好。 下面是请求权限的代码

public boolean isStoragePermissionGranted() {
        if (Build.VERSION.SDK_INT >= 23) {
            if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED ) {
                return true;
            } else {
                    requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
                return false;
            }
        } else { //permission is automatically granted on sdk<23 upon installation
            return true;
        }
    }
我正在运行的调试设备是OnePlus 1。我遗漏了什么吗

以下是尝试请求权限时的一些附加日志:

07-08 19:42:14.222 798-815/? I/ActivityManager: START u0 {act=android.content.pm.action.REQUEST_PERMISSIONS pkg=com.android.packageinstaller cmp=com.android.packageinstaller/.permission.ui.GrantPermissionsActivity (has extras)} from uid 10206 on display 0
07-08 19:42:14.224 798-815/? W/ActivityManager: Bad activity token: android.os.BinderProxy@ae80cbb
                                                java.lang.ClassCastException: android.os.BinderProxy cannot be cast to com.android.server.am.ActivityRecord$Token
                                                    at com.android.server.am.ActivityRecord.forTokenLocked(ActivityRecord.java:424)
                                                    at com.android.server.am.ActivityStack.isInStackLocked(ActivityStack.java:467)
                                                    at com.android.server.am.ActivityStackSupervisor.isInAnyStackLocked(ActivityStackSupervisor.java:592)
                                                    at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:1484)
                                                    at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:1090)
                                                    at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:4077)
                                                    at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:4064)
                                                    at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:162)
                                                    at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2670)
                                                    at android.os.Binder.execTransact(Binder.java:453)
07-08 19:42:14.224 798-815/? W/ActivityManager: Bad activity token: android.os.BinderProxy@ae80cbb
                                                java.lang.ClassCastException: android.os.BinderProxy cannot be cast to com.android.server.am.ActivityRecord$Token
                                                    at com.android.server.am.ActivityRecord.forTokenLocked(ActivityRecord.java:424)
                                                    at com.android.server.am.ActivityStack.isInStackLocked(ActivityStack.java:467)
                                                    at com.android.server.am.ActivityStackSupervisor.isInAnyStackLocked(ActivityStackSupervisor.java:592)
                                                    at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:1484)
                                                    at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:1090)
                                                    at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:4077)
                                                    at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:4064)
                                                    at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:162)
                                                    at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2670)
                                                    at android.os.Binder.execTransact(Binder.java:453)
07-08 19:42:14.225 798-815/? W/ActivityManager: startActivity called from non-Activity context; forcing Intent.FLAG_ACTIVITY_NEW_TASK for: Intent { act=android.content.pm.action.REQUEST_PERMISSIONS flg=0x800000 pkg=com.android.packageinstaller cmp=com.android.packageinstaller/.permission.ui.GrantPermissionsActivity (has extras) }
07-08 19:42:14.258 12029-12029/? I/GrantPermissionsActivity: No package: null
                                                             android.content.pm.PackageManager$NameNotFoundException
                                                                 at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:138)
                                                                 at com.android.packageinstaller.permission.ui.GrantPermissionsActivity.getCallingPackageInfo(GrantPermissionsActivity.java:349)
                                                                 at com.android.packageinstaller.permission.ui.GrantPermissionsActivity.onCreate(GrantPermissionsActivity.java:99)
                                                                 at android.app.Activity.performCreate(Activity.java:6251)
                                                                 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
                                                                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
                                                                 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510)
                                                                 at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)
                                                                 at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                 at android.os.Looper.loop(Looper.java:148)
                                                                 at android.app.ActivityThread.main(ActivityThread.java:5461)
                                                                 at java.lang.reflect.Method.invoke(Native Method)
                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
改变

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


OnePlus 1中是否含有棉花糖?是的,它含有棉花糖。设备应用程序设置中是否已接受权限?因为我有MinSDK版本23,运行时权限应该有效。或者我是否仍需要检查设备应用程序设置以获取权限?发现导致此行为的问题。我正在向子活动请求权限。当我尝试使用ActivityCompat.requestPermissions(getParent(),新字符串[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE},1);它不知怎么起作用了。但不清楚原因。谢谢大家,这是我第一次尝试。但事实并非如此working@priyankbrahmbhatt尝试添加context ContextCompat.checkSelfPermission(这个,android.Manifest.permission.WRITE_EXTERNAL_STORAGE)=PackageManager.permission_grated)与ContextCompat的结果相同
07-08 19:42:14.222 798-815/? I/ActivityManager: START u0 {act=android.content.pm.action.REQUEST_PERMISSIONS pkg=com.android.packageinstaller cmp=com.android.packageinstaller/.permission.ui.GrantPermissionsActivity (has extras)} from uid 10206 on display 0
07-08 19:42:14.224 798-815/? W/ActivityManager: Bad activity token: android.os.BinderProxy@ae80cbb
                                                java.lang.ClassCastException: android.os.BinderProxy cannot be cast to com.android.server.am.ActivityRecord$Token
                                                    at com.android.server.am.ActivityRecord.forTokenLocked(ActivityRecord.java:424)
                                                    at com.android.server.am.ActivityStack.isInStackLocked(ActivityStack.java:467)
                                                    at com.android.server.am.ActivityStackSupervisor.isInAnyStackLocked(ActivityStackSupervisor.java:592)
                                                    at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:1484)
                                                    at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:1090)
                                                    at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:4077)
                                                    at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:4064)
                                                    at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:162)
                                                    at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2670)
                                                    at android.os.Binder.execTransact(Binder.java:453)
07-08 19:42:14.224 798-815/? W/ActivityManager: Bad activity token: android.os.BinderProxy@ae80cbb
                                                java.lang.ClassCastException: android.os.BinderProxy cannot be cast to com.android.server.am.ActivityRecord$Token
                                                    at com.android.server.am.ActivityRecord.forTokenLocked(ActivityRecord.java:424)
                                                    at com.android.server.am.ActivityStack.isInStackLocked(ActivityStack.java:467)
                                                    at com.android.server.am.ActivityStackSupervisor.isInAnyStackLocked(ActivityStackSupervisor.java:592)
                                                    at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:1484)
                                                    at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:1090)
                                                    at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:4077)
                                                    at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:4064)
                                                    at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:162)
                                                    at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2670)
                                                    at android.os.Binder.execTransact(Binder.java:453)
07-08 19:42:14.225 798-815/? W/ActivityManager: startActivity called from non-Activity context; forcing Intent.FLAG_ACTIVITY_NEW_TASK for: Intent { act=android.content.pm.action.REQUEST_PERMISSIONS flg=0x800000 pkg=com.android.packageinstaller cmp=com.android.packageinstaller/.permission.ui.GrantPermissionsActivity (has extras) }
07-08 19:42:14.258 12029-12029/? I/GrantPermissionsActivity: No package: null
                                                             android.content.pm.PackageManager$NameNotFoundException
                                                                 at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:138)
                                                                 at com.android.packageinstaller.permission.ui.GrantPermissionsActivity.getCallingPackageInfo(GrantPermissionsActivity.java:349)
                                                                 at com.android.packageinstaller.permission.ui.GrantPermissionsActivity.onCreate(GrantPermissionsActivity.java:99)
                                                                 at android.app.Activity.performCreate(Activity.java:6251)
                                                                 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
                                                                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
                                                                 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510)
                                                                 at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)
                                                                 at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                 at android.os.Looper.loop(Looper.java:148)
                                                                 at android.app.ActivityThread.main(ActivityThread.java:5461)
                                                                 at java.lang.reflect.Method.invoke(Native Method)
                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
ActivityCompat.requestPermissions(this,new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);