Как получить разрешение для камеры в Android. (В частности, Зефир)

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

 Bipin Bharti03 янв. 2017 г., 11:56
Попробуйте это может быть работаstackoverflow.com/a/41221852/5488468
 Sagar Jogadia24 июл. 2016 г., 14:50
Обратитесь к этой ссылке:github.com/sagarjogadia28/PermissionSample/blob/master/app/src/...

Ответы на вопрос(5)

RxPermission Лучшая библиотека, которая сделала код 1 строки.

Для разрешения камеры обходной путь такой.

1) Сначала добавьте это разрешение в свойmanifest.xml.

<uses-permission android:name="android.permission.CAMERA" />

2) Затем спросите разрешение во время выполнения.

 new RxPermissions(this)
.request(Manifest.permission.CAMERA) // ask single or multiple permission once
.subscribe(granted -> {
    if (granted) {
       // All requested permissions are granted
    } else {
       // At least one permission is denied
    }
});

добавить эту библиотеку в свойbuild.gradle

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

dependencies {
    implementation 'com.github.tbruyelle:rxpermissions:0.10.1'
    implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'
}

Разве это не легко?

 AlexS19 нояб. 2018 г., 06:39
Ваш собственный велосипед, добавление новой библиотеки не стоит.

Это работает для меня, источникВот

int MY_PERMISSIONS_REQUEST_CAMERA=0;
        // Here, this is the current activity
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)
        {
            if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA))
            {

            }
            else
            {
                ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CAMERA}, MY_PERMISSIONS_REQUEST_CAMERA );
                // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
                // app-defined int constant. The callback method gets the
                // result of the request.
            }
        }
Решение Вопроса

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

Затем вы можете использовать это для запроса к пользователю:

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

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

 Moeez30 янв. 2017 г., 13:23
ВManifest.permission.CAMERA я получаю красный текстCAMERA
 Shadab K12 нояб. 2017 г., 18:50
использовать android.Manifest.permission.CAMERA
 Serch26 июл. 2016 г., 14:06
Добро пожаловать. Пожалуйста, если ответ поможет вам, проверьте как решение;)
 Toyas25 июл. 2016 г., 17:32
Большое спасибо ... :-) Это просит разрешения сейчас.

фире.

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

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);
                }

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

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

            }

        }}//end onRequestPermissionsResult
check using this
if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA)
            == PackageManager.PERMISSION_DENIED)

Ваш ответ на вопрос