gpt4 book ai didi

android在不拍照的情况下获取照片路径

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:15 24 4
gpt4 key购买 nike

我想在不拍照的情况下获取相机照片的真实路径。

我现在使用的是:

String path=""; //The real path I want...
String[] projection=new String[]{MediaStore.Images.ImageColumns._ID, MediaStore.Images.ImageColumns.DATA, MediaStore.Images.ImageColumns.DATE_TAKEN};
final Cursor c=context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, MediaStore.Images.ImageColumns.DATE_TAKEN+" DESC");
if(c!=null)
{
c.moveToFirst();
path=c.getString(1);
Log.i(Constants.TAG, "File Path: "+path);
path=path.substring(0, path.lastIndexOf('/')+1);
}

但是上面的结果有时会改变......

对于正常情况,它将是/storage/ext_sd/DCIM/100MEDIA/

(我使用的是 HTC Butterfly,android 4.1.1,完全相同的模块,在 United Stats 中称为 DroidDNA)

今天下午,我将一些照片移动到另一个文件夹后(在手机上操作,不是PC)

结果改为/storage/ext_sd/[some_other_of_my_image_folder]/

如何获取相机照片的真实路径?请帮助我:-(

编辑:我正在尝试另一种方式,如下所示:

Log.i(Constants.TAG, "Photo path: "+f.getPath());
if(f.exists())
{
File test1=new File(f, "100MEDIA/");
if (test1.exists())
{f=test1;}
else
{
File test2=new File(f, "100ANDRO/");
if(test2.exists())
{f=test2;}
else
{
File test3=new File(f, "Camera/");
if(!test3.exists())
{test3.mkdirs();}
f=test3;
}
}
}
else
{
f=new File(f, "Camera/");
f.mkdirs();
}

它返回的路径如:/storage/sdcard0/DCIM/100MEDIA/,这是我手机的内部 16GB 空间。

我已经将我的相机照片存储设置为外部 microSD,路径应该是 /ext_sd/DCIM/100MEDIA/

真的需要帮助,MEDIC!

最佳答案

2 个人对我的问题投了赞成票,所以我想也许其他程序员也面临同样的问题。

我有办法克服这个问题,下面是我的代码:

String path="";
String[] projection=new String[]{MediaStore.Images.ImageColumns._ID, MediaStore.Images.ImageColumns.DATA, MediaStore.Images.ImageColumns.DATE_TAKEN};
final Cursor c=context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, MediaStore.Images.ImageColumns.DATE_TAKEN+" DESC");
boolean isOK=false; //Found a DCIM path ?
if(c!=null)
{
c.moveToFirst();
while(!isOK)
{
path=c.getString(1);
Log.i(Constants.TAG, "File Path: "+path);
path=path.substring(0, path.lastIndexOf('/')+1);
isOK=!(path.indexOf("DCIM")==-1); //Is thie photo from DCIM folder ?

c.moveToNext(); //Add this so we don't get an infinite loop if the first image from
//the cursor is not from DCIM
}
}
Log.i(Constants.TAG, "Only Path: "+path);

express :

首先,这是我的SD卡

  • /DCIM/100MEDIA/xxx.JPG(相机照片)
  • /Media/image/comics/xman/01.JPG
  • ...
  • ..
  • .
  • /Media/image/hot/youknowwhatitis/hot01.JPG

我总是从 context.getContentResolver().query 的光标读取第一条记录。

一般情况下,它首先返回DCIM中的照片,然后是其他照片/图像/图片。

一天早上,我将一个文件从 DCIM 移动到另一个文件夹,(通过 android 的 Gallery APP)

context.getContentResolver().query的第一条记录改为其他非DCIM内容,

把这个问题给我...orz


这不是完美的解决方案,如果用户没有拍摄任何照片到 DCIM,这个解决方案将变得毫无用处。

由于我正在开发一个多媒体应用程序,所以猜测用户应该/必须是一个照片爱好者......这是迄今为止我能做的最好的方法,希望它能给其他人带来一点帮助。

关于android在不拍照的情况下获取照片路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14703079/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com