هر کار میکنم دایرکتوری جدید ایجاد نمیشه چرا؟ api target 23
مدیریت گفتگو
سلام.
هر کار میکنم دایرکتوری جدید ایجاد نمیشه چرا؟
File folder = new File(Environment.getExternalStorageDirectory() + "/mashin");
boolean success = true;
if (!folder.exists()) {
Log.i("Log","no exist");
success = folder.mkdir();
}
if (success) {
Log.i("Log","sucsess");
} else {
Log.i("Log","Noooooo");
}
پاسخها 3
سلام.نه متاسفانه.تو امولیتور اندروید استدیو اینجوریه.اندروید 6 هم استفاده میشه. از این استفاده میشه.
اینجوری استفاده میشن.اندروید 6 پرمیشن دیگه هم میخواد؟
public static final String DIR_SDCARD = Environment.getExternalStorageDirectory().getAbsolutePath();
public static final String DIR_APP = DIR_SDCARD + "/mashin";
public static final String DIR_TEMP = DIR_APP + "/temp";
public static final String DIR_FINAL = DIR_APP + "/final";
new File(DIR_APP).mkdirs();
new File(DIR_TEMP).mkdirs();
new File(DIR_FINAL).mkdirs();
پرمیشن های زیر هم ست شده
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
نظرات
گرفتن پرمیشن نوشتن در کارت حافظه در اندروید 6 به صورت رانتایم :
int REQUEST_WRITE_EXTERNAL_STORAGE=1;
////...
File storageDir = null;
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
//RUNTIME PERMISSION Android M
if(PackageManager.PERMISSION_GRANTED==ActivityCompat.checkSelfPermission(context,Manifest.permission.WRITE_EXTERNAL_STORAGE)){
storageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "myPhoto");
}else{
requestPermission(context);
}
}
return storageDir;
////...
private static void requestPermission(final Context context){
if(ActivityCompat.shouldShowRequestPermissionRationale((Activity)context,Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
// Provide an additional rationale to the user if the permission was not granted
// and the user would benefit from additional context for the use of the permission.
// For example if the user has previously denied the permission.
new AlertDialog.Builder(context)
.setMessage(context.getResources().getString(R.string.permission_storage))
.setPositiveButton(R.string.tamam, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ActivityCompat.requestPermissions((Activity) context,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
REQUEST_WRITE_EXTERNAL_STORAGE);
}
}).show();
}else {
// permission has not been granted yet. Request it directly.
ActivityCompat.requestPermissions((Activity)context,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
REQUEST_WRITE_EXTERNAL_STORAGE);
}
}
///...
@Override
public void onRequestPermissionsResult(int requestCode,String permissions[], int[] grantResults) {
switch (requestCode) {
case UtilityPhotoController.REQUEST_WRITE_EXTERNAL_STORAGE: {
if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(context,
getResources().getString(R.string.permission_storage_success),
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context,
getResources().getString(R.string.permission_storage_failure),
Toast.LENGTH_SHORT).show();
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
return;
}
}
}
نظرات
عجبا! سوال میپرسید وقتی جواب میدیم هم اسپم می کنید!!!! کجای پاسخ من اسپم بود؟ تقصیر خودمه که هر وقت کسی سوال پرسید بی هیچ چشم داشتی جواب دادم
نظرات
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
نظرات