我想禁用接近监控,以便屏幕始终保持打开状态,无论物体离传感器多近。
我使用以下方法进行了尝试:
UIDevice.currentDevice.proximityMonitoringEnabled = NO;
Run Code Online (Sandbox Code Playgroud)
通常它会按预期工作,但是如果我打开 VoiceOver,如果接近传感器被覆盖,屏幕就会开始变黑。
仅供参考:我正在为弱视人士制作视频通话应用程序(使用 CallKit),他们的体验是,如果他们在通话过程中靠得太近屏幕,如果 VoiceOver 开启,屏幕就会变黑。
我尝试安装一个 NSTimer 以每秒将 ProximityMonitoringEnabled 设置为 NO(作为一种糟糕的解决方法),还尝试将其设置为 YES 然后设置为 NO。它保持在 NO,但屏幕仍然黑屏。
Google 中的新位置 API允许创建和监视地理围栏,该地理围栏是具有Geofence.Builder该类的圆形区域。该类仅定义了用于创建圆形地理围栏的方法。我想知道是否可以扩展Geofence.Builder类并创建自定义形状。我想做的是定义一个三角形而不是圆形。
如果这是不可能的,Geofence 类是否提供了一种仅监视圆的某个部分的方法?
更新:我想要做的是从用户位置扩展一个三角形,其中一个顶点是用户位置。我希望三角形的高度为 50 米,三角形的底边为 10 米。之后我想做的是检测何时另一个用户进入这个从当前用户位置延伸的三角形。
android android-location google-maps-android-api-2 proximitysensor android-geofence
二手LG Nexus 4,Android 4.3
返回值有时是假的,我不明白为什么.文档说:"如果传感器得到支持并成功启用,则为true."
奇怪的是,我见过的没有例子是测试SensorManager.registerListener的返回值.
奇怪的是,如果我忽略了返回错误的值,那么一切都按预期工作!
文档:http: //developer.android.com/reference/android/hardware/SensorManager.html
android.hardware.SensorManager,android.hardware.SystemSensorManager
我的代码:
SensorManager sensorMgr = (SensorManager)_context.getSystemService(Context.SENSOR_SERVICE);
if (sensorMgr == null) {
Log.w(TAG, "200410::Sensors not supported");
return false;
}
Sensor sensor = sensorMgr.getDefaultSensor(Sensor.TYPE_PROXIMITY);
result = sensorMgr.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL);
if( result == false) {
// Normally something should be done here
// since the false return value indicated that registration failed.
// But I found it's better doing nothing since the registration seams to be ok
}
return result;
Run Code Online (Sandbox Code Playgroud)
在Android 4.3之前没有发生奇怪的错误返回值 …
这是我在实现时获得的自动生成函数之一
SensorEventListener
我已经搜索过了,并且没有找到这个描述:"如果传感器精度发生变化,请做点什么." 接近传感器精度何时以及如何变化?这对我的应用程序有什么用?