Google glass GDK - 打开相机时出错

时间:2013-11-25 13:37:00

标签: android google-glass google-gdk

我正在使用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)

有什么建议吗?

3 个答案:

答案 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