Android6.0創建文件問題

Android在6.0有了動態權限管理,在文件創建時就需要動態權限。

Android的API對應版本如下:

首先檢查并申請權限:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){

int writePermission = checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);

if(writePermission != PackageManager.PERMISSION_GRANTED){

requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},REQUEST_CODE);

return ;

}

}

申請權限回調:

@Override

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

super.onRequestPermissionsResult(requestCode, permissions, grantResults);

if(requestCode == REQUEST_CODE){

if(permissions[0].equals(Manifest.permission.WRITE_EXTERNAL_STORAGE) && grantResults[0] == PackageManager.PERMISSION_GRANTED){

saveFile();

}else{

Toast.makeText(this,"授權失敗",Toast.LENGTH_SHORT).show();

}

}

}

保存文件saveFile代碼如下:

if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {

File file = new File(Environment.getExternalStorageDirectory(), "lmlfiletest.txt");

if(file.exists()){

file.delete();

}

try {

FileOutputStream fos = new FileOutputStream(file);

String info = etInfo.getText().toString();

fos.write(info.getBytes("utf-8"));

fos.close();

} catch (Exception e) {

e.printStackTrace();

}

Toast.makeText(this, "創建成功!", Toast.LENGTH_SHORT).show();

}

測試成功!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容