报错:cannot resolve symbol createTempFile

0
Android Java C/C++ TempFile 6107 次浏览
运行下面的代码结果报错。

cannot resolve symbol createTempFile

代码:

import java.io.File;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.View;

public final class Util
{
static Bitmap image;

public static File getOutputMediaFile(byte[] data)
{

    image= BitmapFactory.decodeByteArray(data, 0, data.length);


    File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "FrontFlash");



    // Create the storage directory if it does not exist
    if (!mediaStorageDir.exists())
    {
        if (!mediaStorageDir.mkdirs()) return null;
    }//www.sctarena.com

    // Create a media file name
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    File mediaFile=null;

    //mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + ".jpg");

       mediaFile = new File.createTempFile("dsadsa", ".jpg");

    return mediaFile;
}

请尽量让自己的答案能够对别人有帮助

1个答案

默认排序 按投票排序
0

在Android应用中,如果涉及到下载文件(比如自动升级,下载图片等),那么不可避免的要使用到创建文件,特别是创建临时文件。这个时候,File.createTempFile就派上用场了。

要注意的是 File.createTempFile 有两种形式:

public static File createTempFile (String prefix, String suffix, File directory)

public static File createTempFile (String prefix, String suffix)

第二种与第一种的区别是,少了一个directory参数,也就是说第二种会在默认的目录下创建临时文件。

Android中File.createTempFile创建的临时文件:在android1.6和android2.3.x系统下,用File.createTempFile这种方式创建的临时文件会存放到sd卡上;在android 4.1.1系统下,则会将临时文件存放到/data/data/应用包名/cache目录下,而这个目录仅对应用的创建者有读写权限。

这是特别要注意的,在网上能找到的Android自动升级程序的实现代码中,都是使用的第二种方法。这种写法在Android4.0以下是好用的,但是一碰到4.1.1就立刻不灵了。

经过了我艰辛的研究,以及与同行的交流,终于圆满的解决了这个问题。下载保存到临时文件时,指定一个存放的目录。像下面这样:

            File tempDir = new File(Environment.getExternalStorageDirectory().getPath() + File.separator + "bdqzt");
            tempDir.mkdirs();
            File tempFile = File.createTempFile("PartJobsInWuxi", ".apk", tempDir);

上面的代码,在2.3,4.0,4.1.1下都能正常使用。

您一定得看看下面的资料:

Android4.1.1上关于采用File.createTempFile创建的临时文件存放路径有关问题

http://www.myexception.cn/android/756578.html

http://www.kaifajie.cn/android/7236.html