问题是将图像保存到存储中 此代码工作正常,但不适用于Android 6和N
我需要在这里解决什么? 或者作为选项 - 使用另一个示例保存到内部\外部文件
public void saveImage(Bitmap icon) {
File ff;
File file = new File(android.os.Environment.getExternalStorageDirectory(), "Folder Name");
ff = new File(file.getAbsolutePath() + file.separator + imageName + ".jpg");
if(ff.exists()){
Log.i("sharing", "File exist SD");
} else{
try {
File f = null;
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) {
if (!file.exists()) {
file.mkdirs();
}
Log.i("sharing", "File exist Internal");
f = new File(file.getAbsolutePath() + file.separator + imageName + ".jpg");
}
FileOutputStream ostream = new FileOutputStream(f);
bitmap.compress(Bitmap.CompressFormat.PNG, 10, ostream);
ostream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
来自Manifest的权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
感谢名单
答案 0 :(得分:0)
您应该使用uses-permission-sdk-23标记并设置所需的权限。
然后 您应该通过调用checkSelfPermission并将权限名称作为参数传递来检查是否授予了权限
如果未授予权限,则应通过调用requestPermissions方法获取权限,并将权限名称作为字符串数组和请求代码传递
之后 将向用户显示一个对话框,询问他们是否授予了权限
然后将调用onRequestPermissionResult接口,您应该将其实现到您的活动类中
之后 如果用户授予了权限,您可以访问所请求的权限
答案 1 :(得分:0)
我为android sdk添加了权限&gt; 22
此代码完美无缺
if (ContextCompat.checkSelfPermission(HomeActivity.this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(HomeActivity.this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},23
);
}