【问题标题】:I am using for android SDK target version is 22 for READ_CONTACTS我使用的 android SDK 目标版本是 22 的 READ_CONTACTS
【发布时间】:2018-02-10 06:31:39
【问题描述】:

我用于读取联系人的权限,以便在清单中分配权限。我的问题是,我不会将 sdk 版本增加到 23 以向用户显示权限对话框(默认情况下由 android 提供)并获得权限并通过它。在 android sdk 版本 22 中。

  • minSdkVersion = 16 targetSdkVersion = 22 compileSdkVersion = 27

    I am using this code right now.
    
      if (Build.VERSION.SDK_INT >= 23) {
                if (checkPermission()) {
                    Log.e("permission", "Permission already granted.");
                } else {
                    requestPermission();
                }
            }
    
    private boolean checkPermission() {
            int result = ContextCompat.checkSelfPermission(fragmentContext, android.Manifest.permission.READ_CONTACTS);
            if (result == PackageManager.PERMISSION_GRANTED) {
                return true;
            } else {
    
                return false;
            }
        }
    
        private void requestPermission() {
            ActivityCompat.requestPermissions((Activity) fragmentContext, new String[]{android.Manifest.permission.READ_CONTACTS}, REQUEST_READ_CONTACTS);
        }
    
    
     @Override
        public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
            switch (requestCode) {
                case REQUEST_READ_CONTACTS:
                    if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
    
                        Toast.makeText(fragmentContext,
                                "Permission accepted", Toast.LENGTH_LONG).show();
                    } else {
                        Toast.makeText(fragmentContext,
                                "Permission denied", Toast.LENGTH_LONG).show();
    
                    }
                    break;
            }
        }
    

【问题讨论】:

  • 那么你的问题是什么?
  • 我正在使用允许目标 SDK 版本 22 的检查权限
  • 您想为 android SDK

标签: android android-studio android-fragments sdk android-permissions


【解决方案1】:

如果在 API 22 及以下版本中指定,则已授予权限 清单。

对于 API 23+,可以使用 ContextCompat#checkSelfPermission。它在早期的 API 上优雅地“降级”,如果它出现在清单中,它会告诉您已授予权限。在 API 23 及更高版本上,它实际上会检查它是否被授予。

【讨论】:

  • 请简要说明
猜你喜欢
  • 2013-05-17
  • 2011-06-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-21
  • 1970-01-01
  • 2013-05-11
  • 2013-05-11
相关资源
最近更新 更多