Открытие пустой страницы после запроса разрешений при запуске приложения. Но когда я отлаживаю, все работает нормально.Это почему - PullRequest
0 голосов
/ 11 июня 2019

Привет Мой поток приложений - приложение должно запрашивать разрешения на доступ к камере и хранилищу, и сразу же должно открываться камера QrScan.Когда я отлаживаю, все работает нормально, но когда я запускаю приложение, после запроса разрешения открывается пустая страница. Почему это можно объяснить?

Я использую вид сканера ZXing.

public static boolean checkAndRequestPermissions(final Activity context) {
    int ExtstorePermission = ContextCompat.checkSelfPermission( context,
            Manifest.permission.READ_EXTERNAL_STORAGE );
    int cameraPermission = ContextCompat.checkSelfPermission( context,
            Manifest.permission.CAMERA );
    List <String> listPermissionsNeeded = new ArrayList <>();
    if (cameraPermission != PackageManager.PERMISSION_GRANTED) {
        listPermissionsNeeded.add( Manifest.permission.CAMERA );
    }
    if (ExtstorePermission != PackageManager.PERMISSION_GRANTED) {
        listPermissionsNeeded
                .add( Manifest.permission.WRITE_EXTERNAL_STORAGE );
    }
    if (!listPermissionsNeeded.isEmpty()) {
        ActivityCompat.requestPermissions( context, listPermissionsNeeded
                        .toArray( new String[listPermissionsNeeded.size()] ),
                REQUEST_ID_MULTIPLE_PERMISSIONS );
        return false;
    }
    return true;
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    switch (requestCode) {
        case REQUEST_ID_MULTIPLE_PERMISSIONS:
            if (ContextCompat.checkSelfPermission( MainActivity.this, Manifest.permission.CAMERA ) != PackageManager.PERMISSION_GRANTED) {
                Toast.makeText( getApplicationContext(), "Requires acces to Camera", Toast.LENGTH_SHORT ).show();
                // initAds();
                finish();
            } else if (ContextCompat.checkSelfPermission( MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE ) != PackageManager.PERMISSION_GRANTED) {
                Toast.makeText( getApplicationContext(), "Requires Storage Permissions.", Toast.LENGTH_SHORT ).show();
                finish();
            } else {

            }
            break;
    }

}

Это код для разрешений.и следующий код для сканирования

private void ScanQrcode() {
zXingScannerView = new ZXingScannerView(this);
zXingScannerView.setResultHandler((ZXingScannerView.ResultHandler)context);
zXingScannerView.startCamera();
setContentView( zXingScannerView );

}

Файл манифеста

 <uses-permission android:name="android.permission.CAMERA" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
   <uses-permission android:name="android.permission.INTERNET" />
    <uses-feature
        android:name="android.hardware.camera"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.camera.autofocus"
        android:required="false" />

Открытие пустой страницы после запроса разрешений вместо сканирования камеры при запуске приложения и изменении режима телефонаозначает, что от potraite до пейзажа, то сканирование камеры открывается .. Но когда я отлаживаю, все работает нормально, нет необходимости поворачивать телефон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...