• 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();
                }
            }
        }
  • 相关阅读:
    常见sql注入的防范总结
    Hadoop各个组件与端口
    Jenkins HA高可用参考
    zookeeper的主要应用
    Jenkins常见REST API(便于将Jenkins集成到其他系统)
    使用pscp/pslurp批量并发分发/回收文件
    kv数据库对比总结
    /usr/bin/curl: Argument list too long的解决方法
    优秀的开源监控系统梳理
    Linux socat轻松实现TCP/UDP端口转发
  • 原文地址:https://www.cnblogs.com/buxiang-Christina/p/14914453.html
Copyright © 2020-2023  润新知