2012-04-20 46 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文件