如何将图像保存到内部存储器
问题描述:
我正在创建一个移动应用程序以定期执行屏幕截图。然后图像将被MMS检索并发送。如何将图像保存到内部存储器
我的问题是,我使用android 7.0的星系S6边缘,因此没有存储卡。该程序在带有存储卡的kitkat手机上运行,但不适用于S6 Galaxy。
图像如何存储在内部存储器中? 访问MMS应用程序的路径是什么?
谢谢
答
在您的清单文件在以下权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
给你的java文件运行权限:
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, EXTERNAL_PERMISSION_CODE);
}
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, READ_PERMISSION_CODE);
}
的影像保存到内部存储器/ SD卡
方法(当您尝试写入设备的外部存储器时,首先t他的android会尝试在设备上找到已安装的SD卡并写入它。如果SD卡不可用,则得到的数据写入设备的内部存储器:
private void saveImageToLog(){
String timeStampString = Calendar.getInstance().get(Calendar.MILLISECOND);
File appDirectory = new File(Environment.getExternalStorageDirectory() + "/MyAppImageLog");
File photo = new File(appDirectory, "photo_" + timeStampString+ ".png");
if (!appDirectory.exists()) {
appDirectory.mkdir();
}
if (photo.exists()) {
photo.delete();
}
try {
Bitmap bmp = bitmapImage;
FileOutputStream fos = new FileOutputStream(photo.getPath());
bitmapImage.compress(Bitmap.CompressFormat.PNG, 0, fos);
fos.flush();
fos.close();
}catch (Exception e){
e.printStackTrace();
Log.v("log_tag", e.toString());
testInvalid = "";
}
}
你加**的运行时间许可**配合Android 7.0 ** ** –
星系S6边缘现在我把触发屏幕截图的按钮来验证它是否有效。 – maivenn