我正在使用GDK为Glass开发应用程序,但我在启动相机意图时遇到了问题
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(intent, RESULT_FROM_CAMERA);
错误是:
11-24 19:21:30.925: E/StrictMode(591): class com.google.glass.camera.ApiTakePictureActivity; instances=2; limit=1
11-24 19:21:30.925: E/StrictMode(591): android.os.StrictMode$InstanceCountViolation: class com.google.glass.camera.ApiTakePictureActivity; instances=2; limit=1
11-24 19:21:30.925: E/StrictMode(591): at android.os.StrictMode.setClassInstanceLimit(StrictMode.java:1)
有什么建议吗?
答案 0 :(得分:0)
我认为在创建Intent时需要使用android.provider.MediaStore中的常量:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, RESULT_FROM_CAMERA);
答案 1 :(得分:0)
最后我解决了这个问题。 Exception仍然显示,但它完美无缺。使用额外的“输出”不起作用,因为相机意图不使用它。 OnActivityResult不起作用,因为它没有被调用... 我所做的是忽略onActivityResult并使用指向Camera文件夹的FileObserver并在创建新文件时等待事件。
final File photoFolder=new File(Environment.getExternalStorageDirectory() + File.separator + "DCIM/Camera");
fileObserver = new FileObserver(photoFolder.getAbsolutePath(), FileObserver.CREATE)
{
@Override
public void onEvent(int event, final String path)
{
if(event == FileObserver.CREATE)
{
fileObserver.stopWatching();
// Do whatever
}
}
};
fileObserver.startWatching();
答案 2 :(得分:-1)
您似乎打开了多个实例
instances=2; limit=1