当关闭权限对话框时,隐藏的对话框会自动显示

时间:2019-04-03 05:47:28

标签: android permissions dialog android-9.0-pie

我在活动中有一个对话框。现在隐藏对话框,然后显示一个权限请求对话框并拒绝该请求。隐藏的对话框将自动显示。

这是我的测试代码: (1)显示一个对话框:

BT_showDialog = (Button)findViewById(R.id.BT_showDialog);
    BT_showDialog.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
        //create & show dialog
        Log.d("TestLog","create & show dialog");
        final Dialog dialog = new Dialog(MainActivity.this);

        Button bt_hideDialog = new Button(MainActivity.this);
        ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
        bt_hideDialog.setLayoutParams(params);
        bt_hideDialog.setText("Hide Dialog.");
        bt_hideDialog.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
            if(dialog != null){
              Log.d("TestLog","Hide button clicked");
              dialog.hide();
            }
          }
        });

        dialog.setContentView(bt_hideDialog);
        dialog.setCanceledOnTouchOutside(false);
        dialog.show();

      }
    });

(2)单击“隐藏对话框”以隐藏此对话框,然后单击“请求按钮”以请求一些权限以使设备显示权限对话框。

BT_showPermissionDailog = (Button)findViewById(R.id.BT_showPermissionDailog);
    BT_showPermissionDailog.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
        Log.d("TestLog","Request permission");

        if(Build.VERSION.SDK_INT >=23){
          //camera
          int result = MainActivity.this.checkSelfPermission(Manifest.permission.CAMERA);
          if(result != PackageManager.PERMISSION_GRANTED){
            if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,
              Manifest.permission.CAMERA)) {
            }
            ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.CAMERA},1);
          }
        }

      }
    });

(3)拒绝此权限。关闭权限对话框后,将自动显示隐藏的对话框。单击“隐藏对话框”可以看到日志“单击了隐藏按钮”,但是没有任何效果。

0 个答案:

没有答案