2016-07-24 6 views
3

Эй, я разрабатываю приложение в студии Android. В котором требуется разрешение камеры. Я включил <uses-permission android:name="android.permission.CAMERA" /> в файл AndroidManifest.xml. Он работает правильно во всех версиях Android, кроме Marshmallow. Как получить разрешение камеры по умолчанию? Если не возможно, как я могу спросить его у пользователя?Как получить разрешение на камеру в android. (В частности, Marshmallow)

+1

Обратитесь к этой ссылке: https://github.com/sagarjogadia28/PermissionSample/blob/master/app/src/main/java/sagarjogadia28/com/permissionsample/MainActivity.java –

+0

Попробуйте это может быть работа http://stackoverflow.com/a/41221852/5488468 –

ответ

14

Сначала проверьте, если пользователь предоставить разрешение:

if (ContextCompat.checkSelfPermission(context, Manifest.permission.CAMERA) 
    == PackageManager.PERMISSION_DENIED) 

Затем вы можете использовать это, чтобы запросить пользователя:

ActivityCompat.requestPermissions(activity, new String[] {Manifest.permission.CAMERA}, requestCode); 

И в зефира он появится диалоговое

+0

Спасибо большое ... :-) Он просит permisson сейчас. – Toyas

+0

Добро пожаловать. Пожалуйста, если ответ вам поможет, проверьте как решение;) – Serch

+2

В 'Manifest.permission.CAMERA' я получаю красный текст' CAMERA' – faisal1208

0
check using this 
if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA) 
      == PackageManager.PERMISSION_DENIED) 

и

5

Вы можете попробовать следующий код, чтобы получить разрешение камеры зефира.

Сначала проверьте, предоставил ли пользователь разрешение. Если пользователь не предоставил разрешение , запросите разрешение на доступ к камере.

private static final int MY_CAMERA_REQUEST_CODE = 100; 

    if (checkSelfPermission(Manifest.permission.CAMERA) 
         != PackageManager.PERMISSION_GRANTED) { 
       requestPermissions(new String[]{Manifest.permission.CAMERA}, 
          MY_CAMERA_REQUEST_CODE); 
       } 

После запроса на уведомление разрешение будет отображаться спрашивать разрешения содержит разрешать и запрещать варианты. После нажатия кнопки мы можем получить результат запроса следующим способом.

@Override 

    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 

     super.onRequestPermissionsResult(requestCode, permissions, grantResults); 

    if (requestCode == MY_CAMERA_REQUEST_CODE) { 

      if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { 

       Toast.makeText(this, "camera permission granted", Toast.LENGTH_LONG).show(); 

      } else { 

       Toast.makeText(this, "camera permission denied", Toast.LENGTH_LONG).show(); 

      } 

     } 
Смежные вопросы