Приложение не запрашивает разрешения на некоторых устройствах - PullRequest
0 голосов
/ 26 июня 2019

У нас есть приложение, в котором в какой-то момент мы хотим сохранить картинку.Мы реализовали методы, чтобы запросить разрешение.

На моем устройстве (Galaxy S9, обновление новостей) все работает нормально.Он запрашивает разрешение и сохраняет изображение.И устройство (Galaxy A7) моего gf тоже.

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

addPicture.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            try {

                if (ContextCompat.checkSelfPermission(adding.this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {


                    StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
                    StrictMode.setVmPolicy(builder.build());

                    picintent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    picintent.putExtra(MediaStore.EXTRA_OUTPUT, picuri);
                    startActivityForResult(picintent, cameracode);
            } else {
                requestStoragePermission();

                StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
                StrictMode.setVmPolicy(builder.build());

                picintent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                picintent.putExtra(MediaStore.EXTRA_OUTPUT, picuri);
                startActivityForResult(picintent, cameracode);



            }} catch (Exception e) {

                e.printStackTrace();
                Toast.makeText(getApplicationContext(), "Kamera nicht unterstützt", Toast.LENGTH_SHORT).show();
            }
        }
    });



private void requestStoragePermission(){
    if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_EXTERNAL_STORAGE)){

        new AlertDialog.Builder(this)
                .setTitle("Berechtigung benötigt")
                .setMessage("Diese Bereichtigunjg wird zum speichern des Bildes benötigt")
                .setPositiveButton("ok", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        ActivityCompat.requestPermissions(adding.this,new String[] {Manifest.permission.READ_EXTERNAL_STORAGE}, STORAGE_PERMISSION_CODE);
                    }
                })
                .setNegativeButton("cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                })
                .create().show();

    }else {
        ActivityCompat.requestPermissions(this,new String[] {Manifest.permission.READ_EXTERNAL_STORAGE}, STORAGE_PERMISSION_CODE);
    }
}


 @Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    if (requestCode == STORAGE_PERMISSION_CODE) {
        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
            Toast.makeText(this, "Berechtigung erteilt", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(this, "Berechtigung nicht erteilt", Toast.LENGTH_SHORT).show();
    }
}
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...