如何将图像保存到内部存储器

问题描述:

我正在创建一个移动应用程序以定期执行屏幕截图。然后图像将被MMS检索并发送。如何将图像保存到内部存储器

我的问题是,我使用android 7.0的星系S6边缘,因此没有存储卡。该程序在带有存储卡的kitkat手机上运行,​​但不适用于S6 Galaxy。

图像如何存储在内部存储器中? 访问MMS应用程序的路径是什么?

谢谢

+0

你加**的运行时间许可**配合Android 7.0 ** ** –

+0

星系S6边缘现在我把触发屏幕截图的按钮来验证它是否有效。 – maivenn

在您的清单文件在以下权限

<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 = ""; 
    } 
}