zoukankan      html  css  js  c++  java
  • 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();
                }
            }
        }
  • 相关阅读:
    oracle之 关闭透明大页
    Mac下使用sublime Text打开隐藏目录
    win下gosublime配置ctag
    Qless 相关知识
    Redis 的 Lua 脚本支持
    HTTP TCP UDP Socket 关系的几个经典图
    golang rpc 简单范例
    golang fatal error: all goroutines are asleep
    JSON 解析的可抛弃
    golang label breaks
  • 原文地址:https://www.cnblogs.com/buxiang-Christina/p/14914453.html
Copyright © 2011-2022 走看看