【问题标题】:Runtime Permission at Startup启动时的运行时权限
【发布时间】:2016-11-16 15:18:36
【问题描述】:

我有一个需要 CAMERA 和 WRITE_SETTINGS 权限的手电筒,我需要首先处理我已经知道如何操作的这些权限,然后如果它被授予,例如,开始我的主要活动...... (对不起,我是安卓新手)

【问题讨论】:

    标签: android android-6.0-marshmallow runtime-permissions


    【解决方案1】:

    在您的清单文件中添加权限:

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

    在“onCreate”内的主要活动 java 文件中添加以下代码

        String[] PERMISSIONS = new String[]{
                Manifest.permission.ACCESS_FINE_LOCATION,
                Manifest.permission.CALL_PHONE};
        if (
                        (ContextCompat.checkSelfPermission(MapsActivity.this, PERMISSIONS[0]) != PackageManager.PERMISSION_GRANTED) ||
                        (ContextCompat.checkSelfPermission(MapsActivity.this, PERMISSIONS[1]) != PackageManager.PERMISSION_GRANTED)
                )
        {
            ActivityCompat.requestPermissions(MapsActivity.this, PERMISSIONS, REQUEST_INTERNET);
            finish();
        }
    

    【讨论】:

      【解决方案2】:

      github 在你的 gradle 文件中添加这个库

      比添加这段代码

      PermissionListener permissionlistener = new PermissionListener() {
          @Override
          public void onPermissionGranted() {
              //The user have conceded permission
              Toast.makeText(MainActivity.this, "Permission Granted", Toast.LENGTH_SHORT).show();
          }
      
          @Override
          public void onPermissionDenied(ArrayList<String> deniedPermissions) {
              //close the app or do whatever you want
              Toast.makeText(MainActivity.this, "Permission Denied\n" + deniedPermissions.toString(), Toast.LENGTH_SHORT).show();
          }
      };
      
      new TedPermission(this)
      .setPermissionListener(permissionlistener)
      .setDeniedMessage("If you reject permission,you can not use this service\n\nPlease turn on permissions at [Setting] > [Permission]")
      .setPermissions(Manifest.permission.READ_CONTACTS, Manifest.permission.ACCESS_FINE_LOCATION)
      .check();
      

      或者,如果您更喜欢在本地进行,请登录谷歌 docs

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-05
        • 2016-03-25
        • 1970-01-01
        相关资源
        最近更新 更多