代码之家  ›  专栏  ›  技术社区  ›  Hatay Berkay Işıkoğlu

如何在没有异常的情况下获得权限?

  •  -1
  • Hatay Berkay Işıkoğlu  · 技术社区  · 6 年前

    我正在为android编写应用程序。当我打开我的应用程序时,首先会收到异常消息。°t对我来说是不同的东西,因为我制作了很多应用程序,但没有这样的东西。现在我正在努力获得用户的许可,无一例外。当我在Android Studio上点击运行按钮时。Emulator通过请求权限框向我发送错误消息。我只想从用户那里获得请求权限,在我进入我的活动之后,不会收到异常消息。顺便说一句,我对这个话题很熟悉。我该怎么做?

    我的xml:

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

    我的代码:

       ActivityCompat.requestPermissions(this,
                    new String[]{ Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE },
                    PERMISSIONS_MULTIPLE_REQUEST);
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Ashray P. Shetty    6 年前
            int requestCode = 100;
    
            // Check if permission is already granted. If Granted you need not ask
            if (ContextCompat
                .checkSelfPermission(getActivity(),
                    Manifest.permission.CAMERA) != (int)PackageManager.PERMISSION_GRANTED &&
                ContextCompat.checkSelfPermission(getActivity(),
                    Manifest.permission.WRITE_EXTERNAL_STORAGE)
                != (int)PackageManager.PERMISSION_GRANTED) {
    
                // Check if user has opted "Never show again"
                if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), Manifest.permission.CAMERA) ||
                    ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
    
                    requestPermissions(new String[] {
                        Manifest.permission.CAMERA,
                        Manifest.permission.WRITE_EXTERNAL_STORAGE
                    }, requestCode);
                }
            } else {
                // Application has the requested permission.
                // Write your further logic, what's next after permission is granted
            }