我在普通J2EE应用程序中的工作示例:
// decode the image
InputStream inputStream = new File("/images/test.png");
BufferedImage barCodeBufferedImage = ImageIO.read(inputStream);
if (barCodeBufferedImage != null) {
LuminanceSource source = new BufferedImageLuminanceSource(barCodeBufferedImage);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
Result results = new MultiFormatReader().decode(bitmap);
//System.out.println("Decoded barcode image :: "+results.getText());
return results.getText();
}
Run Code Online (Sandbox Code Playgroud)
同样我想在GAE中实现.但它阻止了ImageIO类和BufferedImage类.任何人都可以告诉我GAE上的ImageIO类的替代品吗?
当我有一个捆绑(也许这也发生在单个时间轴卡上)和REPLY动作并且用户执行该动作时,让我们说"花生酱和果冻三明治",在黑色背景上出现带有白色文本的新时间线卡在玻璃上的文字"花生酱和果冻三明治".当看到同一张牌出现在左侧的用户头像(如Abe Lincoln模板示例)和右侧文本时.
让我们将这张新卡称为提醒卡,因为它会提醒用户他们说了什么文字并允许发送.
我没有将该提醒卡插入时间线.
这是REPLY操作的默认Glass行为,向用户插入提示他们说出一些文字吗?这是不是我们的API计数,还是免费赠品和一些谷歌帐户?
有没有办法使用REPLY操作并应用某种未记录的属性来阻止显示此提醒卡?
这里有这个文档似乎鼓励不重复的REPLY操作,这可能是由这个提醒卡行为推动的.
REPLY,REPLY_ALL - 语音回复旨在通过语音捕获自由格式输入.不要使用语音回复来捕获一组有限的选项,例如游戏中可能的移动.
这是用Java重现问题的代码,没有什么复杂的:
menuItemList.add(new MenuItem().setAction("REPLY"));
Run Code Online (Sandbox Code Playgroud) As of firmware update XE7, Glass adds a "View Website" action to search results. How do I add this action to my own timeline cards, such that it will open the Glass Browser with an arbitrary URL?
在我的例子中,Glassware正在插入一个jpeg图像作为时间线卡,作为使用"Take a note"语音命令对用户语音查询的响应.在我看到Glass上的时间线卡之前,我有时会等待10-15分钟.有时,我在重新启动Glass设备后才会在Glass设备上看到插入的时间线卡.
我实现这个的方法是: - 我做Boot-strapping,还包括插入我的Glassware Contact,它接受语音命令"Take a Note".然后在Glass上我使用"Take a note"进行语音查询,我的Glassware接受该查询,向Mirror Service发送OK消息,然后插入带有jpeg图像的新时间轴.
Glass会显示Voice查询,但无法以一致的方式接收插入的Timeline卡.
在Glass GDK应用程序中获取相机时出现间歇性错误.该应用程序是一个简单的应用程序:
问题是该应用程序可以正常工作,但它不时会一次又一次地获取相机.我已经将多个try/catch块中的相机调用完成处理(如果它无法获取相机,应用程序就会退出),但我想知道为什么它首先发生.
除了以下内容,我不会担心这个问题:
我注意到这些错误经常发生在我用"拍照"语音提示拍摄照片后启动应用程序(好像"拍照"应用程序没有释放相机.)
我投入了很多次尝试/捕获以防止每次不良的相机通话,但是......在我这样做之前,(即当我的代码不那么专注于释放相机时),设备会变得非常温暖,以至于我不得不把它关掉再打开以确保我没有损坏它.
我在日志中看到的唯一奇怪的事情是以下消息.我不知道"未知消息类型8192"可能是什么
11-29 19:38:16.344: E/Camera(4551): Received CAMERA_MSG_RELEASE
11-29 19:38:16.493: D/Camera-JNI(4551): android_hardware_Camera_release - context->decStrong(thiz)
11-29 19:38:16.524: E/Camera(4551): Unknown message type 8192
Run Code Online (Sandbox Code Playgroud)
因为我不知道是什么导致了这个,所以我将发布整个项目,看看是否有一些xml文件或其他可能造成这种情况的模糊不清的地方.
这是清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.testcamera"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name="com.example.testcamera.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action
android:name="com.google.android.glass.action.VOICE_TRIGGER" />
</intent-filter>
<meta-data android:name="com.google.android.glass.VoiceTrigger" …Run Code Online (Sandbox Code Playgroud) 我试图在谷歌玻璃上使用zxing,但是我收到了上面的错误.
我使用zxing 2.2 core.jar我也在设备显示屏上收到此错误消息"抱歉,安卓摄像头遇到问题.您可能需要重启设备".
我正在对我的oncreate活动发起意图
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}
Run Code Online (Sandbox Code Playgroud)
Eclipse错误消息
12-16 15:29:24.578: I/PlatformSupportManager(2150): Using implementation class com.google.zxing.client.android.camera.open.GingerbreadOpenCameraInterface of interface com.google.zxing.client.android.camera.open.OpenCameraInterface for SDK 9
12-16 15:29:24.578: I/GingerbreadOpenCamera(2150): Opening camera #0
**12-16 15:29:24.585: W/CaptureActivity(2150): Unexpected error initializing camera**
12-16 15:29:24.585: W/CaptureActivity(2150): java.lang.RuntimeException: Fail to connect to camera service
12-16 15:29:24.585: W/CaptureActivity(2150): at android.hardware.Camera.native_setup(Native Method)
12-16 15:29:24.585: W/CaptureActivity(2150): at android.hardware.Camera.<init>(Camera.java:374)
12-16 15:29:24.585: W/CaptureActivity(2150): at android.hardware.Camera.open(Camera.java:315)
12-16 15:29:24.585: W/CaptureActivity(2150): at com.google.zxing.client.android.camera.open.GingerbreadOpenCameraInterface.open(GingerbreadOpenCameraInterface.java:57) …Run Code Online (Sandbox Code Playgroud) 我有一个GDE应用程序在XE12中运行良好但现在在转换到GDK之后在XE16中崩溃:19.特别是,调用openOptionsMenu()Activity(在这种情况下,打开Live Card上的选项菜单)会导致BadTokenExceptions.
Logcat输出:
04-16 03:36:43.197: E/AndroidRuntime(2465): FATAL EXCEPTION: main
04-16 03:36:43.197: E/AndroidRuntime(2465): Process: com.voidstar.glass.sample.pinDrop, PID: 2465
04-16 03:36:43.197: E/AndroidRuntime(2465): java.lang.RuntimeException: Unable to resume activity {com.voidstar.glass.sample.pinDrop/com.voidstar.glass.sample.pinDrop.MenuActivity}: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
04-16 03:36:43.197: E/AndroidRuntime(2465): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2828)
04-16 03:36:43.197: E/AndroidRuntime(2465): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2857)
04-16 03:36:43.197: E/AndroidRuntime(2465): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2290)
04-16 03:36:43.197: E/AndroidRuntime(2465): at android.app.ActivityThread.access$800(ActivityThread.java:138)
04-16 03:36:43.197: E/AndroidRuntime(2465): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1236)
04-16 03:36:43.197: E/AndroidRuntime(2465): at android.os.Handler.dispatchMessage(Handler.java:102)
04-16 03:36:43.197: E/AndroidRuntime(2465): at android.os.Looper.loop(Looper.java:149)
04-16 03:36:43.197: E/AndroidRuntime(2465): …Run Code Online (Sandbox Code Playgroud) 在Google Glass XE16中,GestureDetector可以检测多种手势,如LONG_PRESS,SWIPE_DOWN,THREE_LONG_PRESS,TWO_SWIPE_DOWN,TWO_TAP和其他一些手势.
在玻璃中TWO_SWIPE_DOWN就像取消所有内容并转到黑屏的快捷方式选项.在黑色屏幕之后它出现"ok glass".
但我需要覆盖TWO_SWIPE_DOWN TAP,以便用户不能以这种方式离开应用程序.我想在点击TWO_SWIPE_DOWN时显示用户特定的消息.
我的代码遵循以下GDK Touch Gestures:
gestureDetector.setBaseListener(new GestureDetector.BaseListener() {
@Override
public boolean onGesture(Gesture gesture) {
if (gesture == Gesture.TAP) {
return true;
} else if (gesture == Gesture.TWO_TAP) {
return true;
} else if (gesture == Gesture.SWIPE_RIGHT) {
return true;
} else if (gesture == Gesture.SWIPE_LEFT) {
return true;
} else if (gesture == Gesture.TWO_SWIPE_DOWN) {
Log.i("Checking the TAPPING of TWO_SWIPE_DOWN", "Its working fine.");
return true;
}
return …Run Code Online (Sandbox Code Playgroud) android gesture-recognition gestures google-glass android-4.4-kitkat
我需要一些帮助来完成从我的Python服务器代码中插入Mirror Credentials API.我们正在使用Python Google API库在Mirror API中插入一个特殊的身份验证令牌,但是我从mirror.accounts()得到一个空白的结果.insert().execute()我应该至少得到一个错误或确认我们将API令牌凭据传递给Google的Mirror API.
这是我们的Python服务器代码,其中包含一些我们的秘密信息,秘密信息私钥和client_id是在我们安全存储在我们服务器上的秘密.json文件中.
with open(os.path.join(os.path.dirname(__file__), 'mirror-credentials.json')) as f:
credentials_json = json.load(f)
credentials = SignedJwtAssertionCredentials(
service_account_name=credentials_json['client_email'],
private_key=credentials_json['private_key'],
scope='https://www.googleapis.com/auth/glass.thirdpartyauth',
)
http = credentials.authorize(httplib2.Http())
mirror = apiclient.discovery.build('mirror', 'v1', http=http)
glass_request = mirror.accounts().insert(
userToken=$glassware_gallery_user_token,
accountType='com.mycompany',
accountName="testAccountName",
body={
'features': ["a", "b", "c"],
'password': $myapp_glass_auth_token,
'userData': [{"key": "realName", "value": "Rusty Shackleford"}],
'authTokens': [
{"type": "drchrono_glass_token", "authToken": $myapp_glass_auth_token}
],
},
)
retValue = glass_request.execute()
Run Code Online (Sandbox Code Playgroud)
注意:$glassware_gallery_user_token当我们打开Glassware时,我们从Google App Gallery传入的令牌(我们已经设置了我们的玻璃器皿应用程序).
执行上面的代码,我们得到一个空值retValue,它是一个空字典:{}打印时.从文档中看起来应该是错误消息或确认.
回应评论:
下面是我们发送的请求的打印输出(通过将print语句插入到httplib2源代码中来实现):
body='{"userData": [{"value": "Rusty Shackleford", "key": "realName"}], … 首先,让我引导您完成我收到错误的过程.首先,我在Android Studio 3.0.1中创建了一个成功的Glass项目.我的其他项目将完全运行,但是当我运行我的玻璃应用程序时,我在编辑配置中收到错误"请选择Android SDK".因此,我尝试使用"启动默认活动"和"目标USB设备"更改编辑配置.不幸的是,这并没有解决我的问题.
这是一个教程,展示了如何创建和部署Google Glass应用程序.
关于这个问题,我已经研究过很多,但是我找到的每个资源都说"同步gradle".这个解决方案不能解决我的问题,也不能解决我的问题.
下面是"编辑配置"窗口的示例.