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.0 以降、許可メカニズムが変更されました。実行時 (ユーザーが特定のシステム サービスを要求したとき) にアクセス許可を求める必要があります。6.0 を対象としていて、実行時のアクセス許可を処理していない場合、アプリはクラッシュします。

以下の公式ドキュメントを確認してください。

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

于 2016-05-03T10:24:32.737 に答える
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 に答える