在Android服务动态抓取拍摄的图像路径 [英] Fetching captured images path dynamically in services in android

查看:111
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆