2013-09-26 49 views
-1

我正在創建一個應用程序,該應用程序將調用相機意圖,並希望爲拍攝的圖像添加經度和緯度。它會是可行的嗎?Android:調用相機意圖並設置經度和緯度

Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
fileUri = Uri.fromFile(getOutputPhotoFile());
i.putExtra(MediaStore.EXTRA_OUTPUT,fileUri);

i.putExtra(「latitude」,「11111」);
i.putExtra(「longitude」,「222」);

startActivityForResult(i,CAPTURE_IMAGE_ACTIVITY_REQ);

+0

這是不可能的。經緯度由相機應用程序控制。如果你想設置它們,你可以自己實現相機應用程序,而不是調用系統相機應用程序 – yushulx

回答

1

您正在使用相機應用程序,這不適合您的目的。因爲你不能覆蓋相機應用上的任何對象。你只能從它得到一個圖像。所以你必須創建你的內置相機應用程序,並將其用於你的目的。 我帶一個使用內置相機的例子。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 
<SurfaceView android:id="@+id/CameraView" android:layout_width="fill_parent" 
android:layout_height="fill_parent"></SurfaceView> 
</LinearLayout> 

現在創建活動像這樣實現SurfaceHolder.Callback

import android.app.Activity; 
import android.os.Bundle; 
import android.view.SurfaceHolder; 
import android.view.SurfaceView; 
public class SnapShot extends Activity implements SurfaceHolder.Callback { 
    SurfaceView cameraView; 
    SurfaceHolder surfaceHolder; 
    Camera camera; 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     cameraView = (SurfaceView) this.findViewById(R.id.CameraView); 
     surfaceHolder = cameraView.getHolder(); 
     surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
     surfaceHolder.addCallback(this); 
    } 
    public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { 
    } 
    public void surfaceCreated(SurfaceHolder holder) { 
    camera = Camera.open(); 
    try 
    { 
     camera.setPreviewDisplay(holder); 
    } 
     catch (IOException exception) 
    { 
     camera.release(); 
    } 
    camera.startPreview(); 
    } 
    public void surfaceDestroyed(SurfaceHolder holder) { 
    } 
} 
+0

不要忘記在Androidmanifest.xml中爲你的項目添加使用權限。 –

0

首先,您必須確保您要啓動的系統相機應用程序接受參數latitudelongitude,否則在我看來這是毫無意義的。
你需要建立你自己的定製相機應用程序,這是不難實現這一點。