Sony smarteyeglass 高级布局中的摄影机操作问题

Sony smarteyeglass 高级布局中的摄影机操作问题,sony-smarteyeglass,Sony Smarteyeglass,我在AdvancedLayout示例项目中遇到相机操作问题。 我在从索尼下载的sdk中向示例项目AdvancedLayout添加以下代码。 我在这里遵循相机指南 请注意,它可以在emulator中工作,但不能在真实设备中工作,并且该指南缺少startCamera和stopCamera操作,我将自己添加到我认为合适的位置 在AndroidManifest.xml中 <uses-permission android:name="com.sony.smarteyeglass.permission

我在AdvancedLayout示例项目中遇到相机操作问题。 我在从索尼下载的sdk中向示例项目AdvancedLayout添加以下代码。 我在这里遵循相机指南 请注意,它可以在emulator中工作,但不能在真实设备中工作,并且该指南缺少startCamera和stopCamera操作,我将自己添加到我认为合适的位置

在AndroidManifest.xml中

<uses-permission android:name="com.sony.smarteyeglass.permission.CAMERA" /> 
内部AdvancedLayoutsControl.java

向AdvancedLayoutsControl构造函数添加以下代码

utils = new SmartEyeglassControlUtils(hostAppPackageName, mSmartEyeglassEventListener);
以及AdvancedLayoutsControl.java内部 还添加了这个覆盖函数。当用户处于SampleDetail(第二级)视图时,希望它在LongPress上拍照


您需要在startCamera之前调用setCameraMode。因为它使用这些首选项初始化相机


我只更改了代码中的这一部分,并使用了您提供的其余部分。然后我在设备和模拟器上进行了测试。当您将setCameraMode调用移到startCamera上方时,它可以正常工作。

是的,您是对的,这解决了问题。如果您可以将其添加到SDK文档/指南中,并在程序员执行我所做的操作时抛出某种形式的异常,则更好。
utils = new SmartEyeglassControlUtils(hostAppPackageName, mSmartEyeglassEventListener);
@Override
    public void onTouch(ControlTouchEvent event) {      
        if(event.getAction() == Intents.TOUCH_ACTION_LONGPRESS) {
            File folder = new File(Environment.getExternalStorageDirectory(), "myfile");
            folder.mkdir();
            Date now = new Date();

            File file =  new File(folder, now.getYear() + "" + now.getMonth() + "" + now.getDate() + "" + now.getHours() + "" + now.getMinutes() + "" + now.getSeconds() + "savefile.jpg");
            try {
                utils.startCamera(file.getAbsolutePath());
            } catch (ControlCameraException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            utils.setCameraMode(SmartEyeglassControl.Intents.CAMERA_JPEG_QUALITY_STANDARD, SmartEyeglassControl.Intents.CAMERA_RESOLUTION_1M, SmartEyeglassControl.Intents.CAMERA_MODE_STILL_TO_FILE);
            utils.requestCameraCapture();
        }
        super.onTouch(event);
    }