Android6相机权限

时间:2016-05-03 10:10:33

标签: android titanium android-permissions runtime-permissions

我制作了一个使用相机的应用程序。

  • Titanium命令行界面,CLI版本5.0.5,
  • Titanium SDK版本5.1.1.GA

在Android 5(Lollipop)之前运行良好。

然而现在它在Android 6上崩溃,甚至没有显示权限提示。

如果在android设置面板中设置权限。它运作良好。

如何在用户安装时自动设置权限?

有没有好的样品?

我正在查看此示例代码,但老实说 它对于只有相机权限来说太复杂了。

https://github.com/appcelerator-developer-relations/appc-sample-ti510/blob/master/app/controllers/permissions.js

2 个答案:

答案 0 :(得分:1)

要获取Android 6中的权限: -

       public void android6permission{
          String[] permissions = {
                "android.permission.CAMERA",
                "android.hardware.camera",
                "android.permission.ACCESS_COARSE_LOCATION",
                "android.permission.WRITE_EXTERNAL_STORAGE",
                "android.permission.READ_EXTERNAL_STORAGE"
        };


        requestPermissions(permissions, 122323);

    }

    @Override
    public void onRequestPermissionsResult(int requestCode,
                                           String permissions[], int[] grantResults) {
        switch (requestCode) {
            case 122323: {
                if (grantResults[0] ==
                        PackageManager.PERMISSION_GRANTED){
                    // Do task
                } else {
                    Toast.makeText(getApplicationContext(),"Access denied",Toast.LENGTH_SHORT).show();

                    // permission denied, boo! Disable the
                    // functionality that depends on this permission.
                }
                return;
            }
        }
    }

只需在onCreate中运行方法android6permission()

答案 1 :(得分:1)

自Android 6.0以来,权限机制已更改。您必须在运行时请求权限(当用户请求特定的系统服务时)。如果您的目标是6.0,并且您还没有处理运行时权限,那么您的应用就会崩溃。

查看以下官方文档:

http://developer.android.com/training/permissions/requesting.html