在Android服务动态抓取拍摄的图像路径 [英] Fetching captured images path dynamically in services in android
问题描述
在我的应用我有硬coded到拍摄的摄像机图像的路径。然而,这并不适用于所有设备,因为图像的存储路径是不同的设备不同。有没有办法来动态获取这条道路,这将是适用于所有设备?
这是我曾尝试:
如果(externalStorageState.equals(Environment.MEDIA_MOUNTED) || externalStorageState.equals(Environment.MEDIA_UNMOUNTED) || externalStorageState
.equals(Environment.MEDIA_MOUNTED_READ_ONLY)){
文件路径=环境
.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM +/摄像机); ////////// ----拍摄图像的路径 Log.d(经营者,路径:+路径); 如果(path.exists()){ 如果(path.isDirectory()){ FO =新FileObserver(path.toString() FileObserver.CLOSE_WRITE){ @覆盖
公共无效的onEvent(INT事件,字符串路径){ SimpleDateFormat的sdfDateT =新的SimpleDateFormat( YY-MM-DD HH:MM:SS,Locale.US); 串ST = sdfDateT.format(系统 .currentTimeMillis());
Log.d(经营者,事件); Log.d(经营者,纬度:+纬度++LNG + LNG ++的位置:+休闲旅客提供++时间:+ ST); ptd.insert(ST,将String.valueOf(LAT),将String.valueOf(LNG),休闲旅客提供); }
};
使用 getExternalStorageDirectory()
如果API水平低于7,然后追加 /图片
来得到的照片存储路径。
有关API级别> 7使用 getExternalStoragePublicDirectory(DIRECTORY_PICTURES)
。结果
你也可以看看此链接。
In my app I have hard-coded a path to captured camera images. However this do not work for all devices, because the storage path for images is different for different devices. Is there a way to dynamically get this path which will be valid for all devices?
This is what I have tried:
if (externalStorageState.equals(Environment.MEDIA_MOUNTED)
|| externalStorageState.equals(Environment.MEDIA_UNMOUNTED)
|| externalStorageState
.equals(Environment.MEDIA_MOUNTED_READ_ONLY)) {
File path = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM
+ "/Camera");//////////----path of captured images
Log.d("operator", " path: " + path);
if (path.exists()) {
if (path.isDirectory()) {
fo = new FileObserver(path.toString(),
FileObserver.CLOSE_WRITE) {
@Override
public void onEvent(int event, String path) {
SimpleDateFormat sdfDateT = new SimpleDateFormat(
"yy-MM-dd HH:mm:ss", Locale.US);
String st = sdfDateT.format(System
.currentTimeMillis());
Log.d("operator", "in event");
Log.d("operator", "lat: " + lat + " " + "lng: "
+ lng + " " + "location: " + addre + " " + "time: " + st);
ptd.insert(st, String.valueOf(lat), String.valueOf(lng), addre);
}
};
Use getExternalStorageDirectory()
if API level is below 7 and then append /Pictures
to get the path of Photos storage.
for API level > 7 use getExternalStoragePublicDirectory (DIRECTORY_PICTURES)
.
Also you can have a look at this link.
这篇关于在Android服务动态抓取拍摄的图像路径的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!