2012-04-20 19 views
1

我對Java和Android有點新鮮。我開發一個程序到Android,其中一個需要的功能是能夠用正確的名稱拍照。安卓 - 當外部主要類別時功能不工作

我的主類是AmplaCoordenadasActivity

所以我做它裏面的下面的代碼:

public void tirarFoto(String arquivo) 
{ 
    Intent camera = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    Uri uriSavedImage=Uri.fromFile(new File(arquivo)); 
    camera.putExtra("output", uriSavedImage); 
    startActivityForResult(camera, 1); 

}  

,它工作正常。

但是,當我嘗試把它放在另一個類中並調用它時,它會拋出許多異常。 類:

package ampla.giesta.coordenadas; 
import java.io.File; 
import android.app.Activity; 
import android.content.Intent; 
import android.net.Uri; 


public class Photo extends Activity{ 

public void tirarFoto(String arquivo){ 
    Intent camera = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    Uri uriSavedImage=Uri.fromFile(new File(arquivo)); 
    camera.putExtra("output", uriSavedImage); 
    startActivityForResult(camera, 1); 

} 

} 

而且我在主類

public void Camera(){ 
     Photo camera = new Photo(); 
     camera.tirarFoto("/sdcard/x.jpg"); 

} 

寫誰能幫助?

+0

請張貼錯誤日誌。 – Sam 2012-04-20 22:48:11

+0

我認爲你不應該'擴展Activity'類'照片'。以及如何調用'Camera()'方法? – amp 2012-04-20 22:59:21

+0

04-21 01:31:53.152:W/dalvikvm(351):threadid = 1:線程以未捕獲的異常退出(group = 0x40015560) 04-21 01:31:53.182:E/AndroidRuntime(351):FATAL EXCEPTION :main 04-21 01:31:53.182:E/AndroidRuntime(351):java.lang.IllegalStateException:無法執行活動的方法 – giesta 2012-04-21 01:32:03

回答

0

您需要在您的Android清單中包含新的活動。

閱讀上在這裏 http://developer.android.com/guide/topics/manifest/manifest-intro.html

這是一個很好的介紹你需要在Android清單設置權限。清單控制應用程序可以調用和響應的其他應用程序的功能,您必須在清單中聲明服務和接收者,您的應用程序需要的任何特殊權限需要在清單中聲明,最後,除主應用程序之外的任何其他活動活動也需要在這裏申報。

您還在清單中管理您活動的意圖過濾器。

嘗試添加

<activity android:name=".Photo" android:label="@string/app_name" /> 

您manifest.xml文件