我想在三星较新型号(s10或s10 +)上测试接近传感器,我使用了旧的传统方式为接近传感器注册了侦听器,并且该传感器适用于除这两种设备以外的所有设备。我通过互联网进行搜索,发现S10的显示屏下方有接近传感器(在通话等过程中,闪烁的像素会亮起)。我还使用了许多第三方传感器测试应用程序,但是它们都不适用于S10。有谁知道三星发生了什么变化?我们如何以编程方式访问S10接近传感器? 我尝试了下面的代码,但它总是敬酒。
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_PROXIMITY) {
if (event.values[0] >= -SENSOR_SENSITIVITY && event.values[0] <= SENSOR_SENSITIVITY) {
//near
Toast.makeText(getApplicationContext(), "near", Toast.LENGTH_SHORT).show();
} else {
//far
Toast.makeText(getApplicationContext(), "far", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
Toast.makeText(getApplicationContext(), "accuracy changed", Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:1)
您可以使用密码*#77692# Test proximity sensor on Samsung Galaxy S10
答案 1 :(得分:0)
简单来说(非编程方式) 方法1 拨号器上的星号哈希值零星号哈希值(#0 #) 选择接近传感器时会有一个选项块(红色,绿色,蓝色,振动,照相机)。现在它将显示勒克斯(发光强度),更多勒克斯更多的光。也请明智地检查。您现在也可以将鼠标悬停显示屏出现绿色振动。 方法2 拨打电话。在通话过程中,右上方(相机左侧)的显示屏上会出现一个白点(看起来像一个像素点)。现在将鼠标悬停并检查。
答案 2 :(得分:0)
这是打开和测试接近传感器的方法。
拨号*#77692#您将得到两个传感器进行测试:
1:光传感器 2:接近传感器
您无法将其打开并保持打开状态。我们可以通过将其关闭后再打开它来对其进行测试。三星很奇怪。
也许下一次更新将使它保持打开的可能性。因此屏幕不会在口袋里解锁。 希望对您有所帮助。
答案 3 :(得分:0)
尽量不要直接使用传感器API。要测试接近传感器,只需获取使用PROXIMITY_SCREEN_OFF_WAKE_LOCK参数创建的唤醒锁即可。
这将无助于获得测量的距离,但是当您将手掌放在传感器上时,屏幕将开始关闭/打开。
class ProximityMgr(context: Context) {
private val powerManager: PowerManager = context.getSystemService()!!
private val wakeLock: PowerManager.WakeLock
init {
wakeLock = powerManager.newWakeLock(
PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK,
"lock:proximity_screen_off")
}
fun acquire() {
if (powerManager.isWakeLockLevelSupported(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK)) {
if (wakeLock.isHeld) {
wakeLock.release()
}
wakeLock.acquire(WAKE_LOCK_TIMEOUT_MS)
} else {
Log.w(TAG, "not supported")
}
}
fun release() {
if (wakeLock.isHeld)
wakeLock.release()
}
companion object {
private const val TAG = "ProximitySensor"
private const val WAKE_LOCK_TIMEOUT_MS: Long = 2 * 3600 * 1000
}
}
此摘录摘自this answer。