全球生产的所有Android设备均带有内置传感器,可以测量运动,方向和各种环境条件。这些传感器通常通过为各种应用程序提供来自传感器的数据来促进Android体系结构。例如,温度传感器提供设备的温度,可以从中获取信息以关闭一些不需要的服务。这样的传感器是普通类型,但是广义上讲,传感器分为三种类型:
- 运动传感器:运动传感器测量沿三个轴xyz的加速度和旋转力。运动传感器包括加速度计,重力传感器,陀螺仪和旋转矢量传感器。
- 环境传感器:环境传感器可测量各种环境参数,例如压力,环境温度(室温),照明(设备上的光线)和湿度。它们包括气压计,光度计和温度计。
- 位置传感器:位置传感器测量设备在空间中的物理位置。它们包括方向传感器和磁力计。
Android设备中的常规传感器
通常,Android 4.4或更高版本(Kitkat)或更高版本上的所有Android设备中都包含以下传感器:
- 加速度计–硬件传感器–运动传感器
- 重力传感器–基于程序(软件)–源自运动传感器的原始数据,用于重力计算。
- 环境温度–硬件传感器–环境传感器
- 陀螺仪–硬件传感器–运动传感器
- 光传感器–硬件传感器–环境传感器
- 方向传感器–基于程序(软件)–来自位置和运动传感器的原始数据
- 接近传感器–硬件传感器–位置传感器
方法
步骤1:创建一个新项目
要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Kotlin作为编程语言。
步骤2:使用activity_main.xml文件
转到代表应用程序UI的activity_main.xml文件,并在ScrollView内创建一个TextView,该列表应列出设备中存在的传感器。以下是activity_main.xml文件的代码。
XML
Kotlin
import android.content.Context
import android.hardware.Sensor
import android.hardware.SensorManager
import android.os.Bundle
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
// Information about Sensors present in the
// device is supplied by Sensor Manager of the device
private lateinit var sensorManager: SensorManager
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Initialize the variable sensorManager
sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager
// getSensorList(Sensor.TYPE_ALL) lists all the sensors present in the device
val deviceSensors: List = sensorManager.getSensorList(Sensor.TYPE_ALL)
// Text View that shall display this list
val textView = findViewById(R.id.tv)
// Converting List to String and displaying
// every sensor and its information on a new line
for (sensors in deviceSensors) {
textView.append(sensors.toString() + "\n\n")
}
}
}
步骤4:使用MainActivity.kt文件
转到MainActivity.kt文件,并参考以下代码。下面是MainActivity.kt文件的代码。在代码内部添加了注释,以更详细地了解代码。
科特林
import android.content.Context
import android.hardware.Sensor
import android.hardware.SensorManager
import android.os.Bundle
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
// Information about Sensors present in the
// device is supplied by Sensor Manager of the device
private lateinit var sensorManager: SensorManager
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Initialize the variable sensorManager
sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager
// getSensorList(Sensor.TYPE_ALL) lists all the sensors present in the device
val deviceSensors: List = sensorManager.getSensorList(Sensor.TYPE_ALL)
// Text View that shall display this list
val textView = findViewById(R.id.tv)
// Converting List to String and displaying
// every sensor and its information on a new line
for (sensors in deviceSensors) {
textView.append(sensors.toString() + "\n\n")
}
}
}
输出:在模拟器上运行
想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处前往由我们的专家精心策划的指南,以使您立即做好行业准备!