1

大家好,

我正在使用以下代码。

                String fileName = "image" + "_" + title.getText().toString()+"_" + val.toString(); 
                photo = this.createFile(fileName, ".jpg");
                intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
                uriOfPhoto = Uri.fromFile(photo);
                startActivityForResult(intent, RESULT_CAMERA_SELECT);
            }
        }
        catch(Exception e)
        {
            Log.v("Error", "Can't create file to take picture!");
            displayAlert("Can't create file to take picture!","SDCard Error!");
        }
    }

    private File createFile(String part, String ext) throws Exception
    {
        File tempDir = new File (Environment.getExternalStorageDirectory() + "/MyFolder/Images");
        if(!tempDir.exists())
        {
            tempDir.mkdir();
        }
        tempDir.canWrite();
        return new File(tempDir, part+ext);
    }
});

UriOfPhoto让我uriString在调试中没有受到影响。它没有存储文件的uri。我该如何解决这个问题。

authority   Uri$Part$EmptyPart  (id=830004244032)   
fragment    Uri$Part$EmptyPart  (id=830004245408)   
host    "NOT CACHED" (id=830003914304)  
path    Uri$PathPart  (id=830067926736) 
port    -2  
query   Uri$Part$EmptyPart  (id=830004245408)   
scheme  "file" (id=830002660688)    
ssp null    
uriString   "NOT CACHED" (id=830003914304)  
userInfo    null    

此致

4

2 回答 2

0

这还不够信息。你对你发送的意图采取了什么行动?您确定 createFile 实际上创建了一个文件吗?

您提供的错误列表不是很有用。它是调试变量值列表的一部分吗?如果是这样,当您查看这些值时,您在代码中的什么位置?

于 2012-04-13T00:07:26.680 回答
0
String fileName = Environment.getExternalStorageDirectory() + "/MyFolder/Images" + fileName + ".jpg";
UriOfPhoto = Uri.parse(fileName);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.putExtra(MediaStore.EXTRA_OUTPUT,  UriOfPhoto);
startActivityForResult(intent, RESULT_CAMERA_SELECT);

也不需要为存储照片创建文件,您只需传递照片必须在上面的 uri,Android 操作系统就像您尝试做的那样创建一个文件,并将捕获的图像存储在该 uri 中。

于 2012-04-13T02:35:42.987 回答