1

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

有什么建议吗?

4

3 回答 3

0

我认为您在创建 Intent 时需要使用 android.provider.MediaStore 中的常量:

        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(intent, RESULT_FROM_CAMERA);
于 2013-11-25T23:29:04.933 回答
0

最后我解决了这个问题。异常仍然显示,但它工作完美。使用额外的“输出”不起作用,因为相机意图不使用它。OnActivityResult 也不起作用,因为它没有被调用......我所做的是忽略 onActivityResult 并使用 FileObserver 指向 Camera 文件夹并在创建新文件时等待事件。

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();
于 2013-12-16T12:43:19.007 回答
-1

您似乎打开了多个实例

instances=2; limit=1
于 2013-11-25T13:42:37.530 回答