2017-04-25 108 views
-3

我正在寻找将android权限列表组合在一起的方法。 到目前为止,我已经遵循了这一Link between Android Permissions and Permission Groups链接,但它的项目给出相关的信息在这里https://developer.android.com/reference/android/Manifest.permission_group.html根据权限将Android权限列表合并在一起

但物品,如蓝牙,设置包的权限未列出https://developer.android.com/reference/android/Manifest.permission.html

我想分类基于特征的所有权限像 Bluetooth(BLUETOOTH, BLUETOOTH_ADMIN, BLUETOOTH_PRIVILEGED)

回答

-1
public void doCheckPermission() { 
     // The request code used in ActivityCompat.requestPermissions() 
     // and returned in the Activity's onRequestPermissionsResult() 
     int PERMISSION_ALL = 1; 
     String[] PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.ACCESS_NETWORK_STATE 
     }; 

     if (!hasPermissions(NavigationDrawerActivity.this, PERMISSIONS)) { 
      ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL); 
     } 
    } 

    public static boolean hasPermissions(Context context, String... permissions) { 
     if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) { 
      for (String permission : permissions) { 
       if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) { 
        return false; 
       } 
      } 
     } 
     return true; 
    } 

    @Override 
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 
     super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
     switch (requestCode) { 
      case 1: { 
       if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && NavigationDrawerActivity.this != null && permissions != null) { 
        for (String permission : permissions) { 
         if (ActivityCompat.checkSelfPermission(NavigationDrawerActivity.this, permission) == PackageManager.PERMISSION_GRANTED) { 

          // Toast.makeText(this, "Please give all permissions", Toast.LENGTH_SHORT).show(); 
          Log.e("TAG", "onRequestPermissionsResult: given"); 
         } 
        } 
       } 
      } 
     } 
    } 

希望这将帮助!

1

我想那归类不会有可能基于特征像蓝牙(BLUETOOTH,BLUETOOTH_ADMIN,BLUETOOTH_PRIVILEGED)所有权限等

。应用可以定义自己的权限,而这些权限不需要属于特定的权限组。

欢迎您到call getPermissionInfo() on a PackageManager获取权限信息,包括its group。但是,您需要处理没有组的权限。

+0

我同意,应用程序可以有他们的自定义权限,我正在寻找分类默认的,当然自定义权限,我可以保留其他人或应用程序的名称。是的调用getPermissionsInfo和所有工作如期在这里https://gist.github.com/ashish29agre/93ed5f13f916048492e9aae4d8121ef0 – sector11