我应该把Exifinterface放在我的相机应用程序中?

时间:2014-05-26 17:06:51

标签: android image geolocation exif

我制作的相机应用程序可以拍摄并保存SD卡中的图片。想法是存储具有日期/位置属性的图片。日期部分有效,但我不知道如何做位置,所以我一直在谷歌搜索,我发现了Exif属性。阅读完它们之后,我知道它们是如何工作的,但我不知道如何将它们放在代码中以使其工作。

我认为代码的部分应该在下面附上。

提前致谢!

PictureCallback mPicture = new PictureCallback() {
        @Override
        public void onPictureTaken(byte[] data, Camera camera) {
            File pictureFile = getOutputMediaFile();
            if (pictureFile == null) {
                return;
            }
            try {
                FileOutputStream fos = new FileOutputStream(pictureFile);
                fos.write(data);
                fos.close();
            } catch (FileNotFoundException e) {

            } catch (IOException e) {
            }
        }

    };



    private static File getOutputMediaFile() {
        File mediaStorageDir = new File(
                Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "FOTOS");
        if (!mediaStorageDir.exists()) {
            if (!mediaStorageDir.mkdirs()) {
                Log.d("FOTOS", "ERROR al crear el directorio");
                return null;
            }
        }
        // Create a media file name
        String timeStamp = new SimpleDateFormat("HHmmss_ddMMyyyy").format(new Date());
        File mediaFile;
        mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + ".jpg");

    return mediaFile;
        }

        class mylocationlistener implements LocationListener{

            @Override
            public void onLocationChanged(Location location){
                if(location != null)
                {
                    double plong = location.getLongitude();
                    double plat = location.getLatitude();
                    double palt = location.getAltitude();

                    textLat.setText(Double.toString(plat));
                    textLong.setText(Double.toString(plong));
                    textAlt.setText(Double.toString(palt));
                }
            }

            @Override
            public void onStatusChanged(String s, int i, Bundle bundle) {
            }

            @Override
            public void onProviderEnabled(String s) {
            }

            @Override
            public void onProviderDisabled(String s) {
            }
        }

0 个答案:

没有答案