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();
}
}
}