2021.2.22

app需要向用户申请权限,网上扒代码

public class SaveExcelActivity extends AppCompatActivity  {

    private TextView textView;
    private AlertDialog alertDialog;
    String[] permissions = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
    private int REQUEST_PERMISSION_CODE = 1000;
    @SuppressLint("SdCardPath")
    private String filePath;
//     = SaveExcelActivity.this.getExternalFilesDir("self").toString() + File.separator + "MyExcel" + File.separator
    //请求权限
    private void requestPermission() {
        if (Build.VERSION.SDK_INT > 23) {
            if (ContextCompat.checkSelfPermission(SaveExcelActivity.this, permissions[0]) == PackageManager.PERMISSION_GRANTED) {
                Log.i("requestPermission:", "用户之前已经授予了权限!");
            } else {
                Log.i("requestPermission:", "未获得权限,现在申请!");
                requestPermissions(permissions, REQUEST_PERMISSION_CODE);
            }
        }
    }
    @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_save_excel);
        requestPermission();
        System.out.println("e1");
        StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
        StrictMode.setVmPolicy(builder.build());
        builder.detectFileUriExposure();
        String ID = "20194071";
        String myclass = "信1905-2";
        Button exportButton = findViewById(R.id.export_button);
        exportButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                exportExcel(SaveExcelActivity.this);
            }
        });


        textView = findViewById(R.id.textView);
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == REQUEST_PERMISSION_CODE) {
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//                LogUtil.e("申请成功");
            } else {
                AlertDialog.Builder builder = new AlertDialog.Builder(SaveExcelActivity.this);
                builder.setTitle("permission");
                builder.setMessage("点击允许才可以使用");
                builder.setPositiveButton("去允许", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        if (alertDialog != null && alertDialog.isShowing()) {
                            alertDialog.dismiss();
                        }
                        ActivityCompat.requestPermissions(SaveExcelActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
                    }
                });
                alertDialog = builder.create();
                alertDialog.setCanceledOnTouchOutside(false);
                alertDialog.show();
            }
        }
    }
原文地址:https://www.cnblogs.com/buxiang-Christina/p/14914453.html