如何在此弹出窗口中删除"永不再问"字样?

Ana*_*Ana -6 android permission-denied android-permissions

如何在没有"Never ask again"文本的情况下请求权限弹出窗口?

这里是java Code,

    if 
 (intent.getAction().equals("com.finish.canceltrip.DriverMapActivity")) {
                if (!checkAccessFineLocationPermission() || !checkAccessCoarseLocationPermission() || !checkWriteExternalStoragePermission()) {
                    requestPermission();
                } else {
                    Intent i = new Intent(DriverMapActivity.this, DriverMapActivity.class);
                    i.putExtra("availability", "Yes");
                    finish();
                    startActivity(i);

                }
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Gok*_*oku 6

如何在没有"Never ask again"文本的情况下请求权限弹出窗口?

不,您无法 从权限对话框中删除"永不再问"

如果用户选择" 永不再问",请尝试这个黑客

请求这样的许可

 btnCurrentLocationSearch.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String permission = android.Manifest.permission.ACCESS_FINE_LOCATION;


                if (ActivityCompat.checkSelfPermission(SearchCityClass.this, permission)
                        != PackageManager.PERMISSION_GRANTED && ActivityCompat.
                        checkSelfPermission(SearchCityClass.this, android.Manifest.permission.ACCESS_COARSE_LOCATION)
                        != PackageManager.PERMISSION_GRANTED) {

                    Toast.makeText(SearchCityClass.this, "Permission not granted", Toast.LENGTH_SHORT).show();

                    ActivityCompat.requestPermissions(SearchCityClass.this, new String[]
                            {permission}, requestCode);

                } else {
                    isPermissionGranted(true);
                }
            }

        });
Run Code Online (Sandbox Code Playgroud)

比onRequestPermissionsResult处理权限结果

    @Override
        public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
            if (requestCode == requestCode) {
                if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {

                    isPermissionGranted(true);
                } else {

                    isPermissionGranted(false);
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

而不是创建这样的方法

public void isPermissionGranted(boolean permission) {
        if (!permission) {
            Toast.makeText(this, "Permission not Granted", Toast.LENGTH_SHORT).show();
            startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
                    Uri.fromParts("package", getPackageName(), null)));
        } else {
            Toast.makeText(SearchCityClass.this, "true", Toast.LENGTH_SHORT).show();
            Toast.makeText(SearchCityClass.this, "Permission granted", Toast.LENGTH_SHORT).show();
            // you need to perform all action here if user grants the permission
        }
    }
Run Code Online (Sandbox Code Playgroud)