android - 来自适配器的 OnResquestPermissionResult

标签 android permissions adapter

我有一个 BaseAdapter,其中包含正确使用该应用所需的所有权限的列表。

我需要,在其中之一的 onClick 之后,请求权限并检查是否被授予。

根据要求,我正在使用

ActivityCompat.requestPermissions

但我不知道如何得到结果。

是否可以调用O

nRequestpermissionsResultCallback

要知道用户的答案?

我该怎么做?

最佳答案

所以首先我在适配器中实现 实现 ActivityCompat.OnRequestPermissionsResultCallback 那么它需要一个 Overide 方法

@Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        //  it is not work here  onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == storagePermission) {

            // getPosts(false);

            if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
                Toast.makeText(context.getApplicationContext(), "Please allow permission to Continue", Toast.LENGTH_SHORT).show();



            }

            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
              Toast.makeText(context.getApplicationContext(), " Permissions Granted Succecfully", Toast.LENGTH_SHORT).show();

        //here i load my method  that i want to run 
            }

        }
    }

现在的问题是 onRequestPermissionsResult 不是从适配器调用的 适配器触发器 onRequestPermissionsResult of the mainActivity Attach with the Adapter

所以在主 Activity 中我创建了这个并通过传递运行适配器的 onRequestPermissionsResult adapterPosts.onRequestPermissionsResult(requestCode,permissions,grantResults);

  @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == storagePermission) {

            // getPosts(false);

            if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
           //permission not granted
            }

            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
               //permission granted

                adapterPosts.onRequestPermissionsResult(requestCode,permissions,grantResults);
                //loadImageIntent();
            }

        }
    }

关于android - 来自适配器的 OnResquestPermissionResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44238385/

相关文章:

android - ScrollView 中的 ImageViews 导致延迟

使用 kotlin 和 greendao 的 Android Studio 3.0 Proguard 返回 ClassLookupException

android - 根据通知恢复后台 Activity

linux - 由于 'no permission',向 Hudson/build 授予权限失败

php - 如何构建 cms 的用户权限

android - GridView Adapter.getView() 未正确设置选定状态

Android Gallery View 和适配器 getView 被多次调用

android - 在Android上如何统计每日、每周、每月的3G、WiFi上网流量?

perl - make_path 未按指定设置模式

android - 我正在使用 Toast 在 ListViewItem 单击时显示,但没有显示 toast