Android 判断手机屏幕是否朝下
时间: 2023-09-30 12:08:55 浏览: 289
你可以通过重力感应器来判断 Android 手机屏幕是否朝下。以下是示例代码:
1. 在 `onCreate()` 方法中获取 `SensorManager` 对象和重力感应器对象:
```java
SensorManager sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
Sensor gravitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY);
```
2. 实现 `SensorEventListener` 接口,并在 `onSensorChanged()` 方法中判断重力感应器返回的加速度值:
```java
private SensorEventListener sensorEventListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
double angle = Math.atan2(y, x) * 180 / Math.PI;
if (angle > 90) {
// 手机朝下
} else if (angle < -90) {
// 手机朝上
} else {
// 其他方向
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// Do nothing
}
};
```
3. 在 `onResume()` 方法中注册重力感应器监听器:
```java
sensorManager.registerListener(sensorEventListener, gravitySensor, SensorManager.SENSOR_DELAY_NORMAL);
```
4. 在 `onPause()` 方法中取消注册重力感应器监听器:
```java
sensorManager.unregisterListener(sensorEventListener);
```
注意,以上代码只是一个示例,需要根据你的实际需求进行调整。
阅读全文