0

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

  • Titanium 命令行界面,CLI 版本 5.0.5,
  • 钛 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

4

2 回答 2

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()

于 2016-05-03T10:17:05.537 回答
1

从 Android 6.0 开始,权限机制发生了变化。您必须请求运行时的权限(当用户请求特定的系统服务时)。如果您的目标是 6.0 并且您没有处理运行时权限,您的应用程序将会崩溃。

查看以下官方文档:

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

于 2016-05-03T10:24:32.737 回答