在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) 为什么这个CATransaction的完成块永远不会发生?
[CATransaction begin];
[CATransaction setCompletionBlock:^{
// table animation has finished
NSLog(@"why does this section never execute?");
}];
[self.tableView beginUpdates];
[self.tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:self.currentFeedItems.count inSection:0]] withRowAnimation:UITableViewRowAnimationFade];
[self.tableView endUpdates];
[CATransaction commit];
Run Code Online (Sandbox Code Playgroud)
tableview动画有效,但永远不会执行完成块.Apple文档说保证完成块可以执行.
我想将云监视警报设置为在没有任何活动时触发,例如,当Lambda函数至少在5分钟内未执行时触发云监视警报。我设置了一个简单的测试lambda函数(testLambdaFunc),然后使用python脚本设置了警报,如下所示:
import boto3
lambdaFunction = 'testLambdaFunc'
alarmName = 'testLambdaAlarm'
client = boto3.client("cloudwatch")
# create alarm to fire after five minutes of inactivity
response = client.put_metric_alarm(
AlarmName=alarmName,
AlarmActions=[],
MetricName='Invocations',
Namespace='AWS/Lambda',
Dimensions=[
{
'Name': 'FunctionName',
'Value': lambdaFunction
},
],
Statistic='Average',
Period=300,
EvaluationPeriods=1,
Threshold=0,
ComparisonOperator='LessThanOrEqualToThreshold'
)
Run Code Online (Sandbox Code Playgroud)
创建警报后,它将立即进入INSUFFICIENT DATA状态。然后,我一次触发lambda函数以获取数据点。警报进入OK状态,然后大约10分钟后返回到INSUFFICIENT DATA状态。这是正常的还是应该引起警报?如何设置在该功能没有任何活动时触发的警报?
lambda amazon-web-services cloudwatch amazon-cloudwatch aws-lambda