默认情况下在包中声明的权限 CAMERA

Posted

技术标签:

【中文标题】默认情况下在包中声明的权限 CAMERA【英文标题】:Declared permisisons CAMERA in package by default 【发布时间】:2020-10-14 04:49:11 【问题描述】:

当我第一次安装我的应用程序并尝试使用我的 CAMERA 时,它不会请求许可

我的许可方法

public boolean hasPermissionInManifest(Context context, String permissionName) 
    final String packageName = context.getPackageName();
    try 
        final PackageInfo packageInfo = context.getPackageManager().getPackageInfo(packageName, PackageManager.GET_PERMISSIONS);
        final String[] declaredPermisisons = packageInfo.requestedPermissions;
        if (declaredPermisisons != null && declaredPermisisons.length > 0) 
            for (String p : declaredPermisisons) 
                if (p.equals(permissionName)) 
                    return true;
                
            
        
     catch (PackageManager.NameNotFoundException e) 

    
    return false;

当我调试我的应用程序时,我发现CAMERA 权限存在于declaredPermisisons

AndroidManifest.xml

 ...
 <uses-permission android:name="android.permission.INTERNET" />
 <uses-feature android:name="android.hardware.camera" android:required="false" />
 ...

注意:declaredPermisisons中的权限

【问题讨论】:

【参考方案1】:

我不知道为什么您的代码不起作用,但这是我用于许可的原因:

public class MainActivity extends AppCompatActivity 
    private static final int REQUEST_PERMISSION_CODE = 1000;

    @Override
    public void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if(!checkPermissionFromDevice())
            requestPermission();
    
    private void requestPermission() 
        ActivityCompat.requestPermissions(this,new String[]
                Manifest.permission.CAMERA
        ,REQUEST_PERMISSION_CODE);
    
    private boolean checkPermissionFromDevice() 
        int camera = ContextCompat.checkSelfPermission(this,Manifest.permission.CAMERA);
        return camera ==PackageManager.PERMISSION_GRANTED;
    

【讨论】:

感谢您的回答,我稍后再试 成功了,谢谢你,请重新组织你的代码,为什么不支持这个问题 只有padding没整理,还有什么需要整理的?

以上是关于默认情况下在包中声明的权限 CAMERA的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 在包中使用自定义 USER-Model

我如何在包中读取函数和过程 body/ddl?

包中枚举类型的声明

Oracle 错误 PLS-00323:子程序或游标在包规范中声明,必须在包主体中定义

Java访问控制

在 PL/SQL 包中声明全局异常