This commit is contained in:
xsean 2025-12-24 14:22:29 +08:00
parent 399a06d275
commit f8b5cba366
4 changed files with 794 additions and 5 deletions

View File

@ -0,0 +1,464 @@
# InputInfo 硬件特性检测使用示例
## 概述
InputInfo 类现在提供了完整的硬件特性检测功能包括输入设备信息和各种硬件特性支持USB、指纹、NFC、GPS等
## 新增功能
### 硬件特性检测方法12个
1. **USB 相关**
- `hasUsbHostSupport()` - USB Host 模式支持
- `hasUsbAccessorySupport()` - USB 配件模式支持
2. **生物识别**
- `hasFingerprintSensor()` - 指纹识别器
3. **传感器**
- `hasInfraredSensor()` - 红外线传感器(遥控器功能)
- `hasUwbSupport()` - UWB 超宽带支持
4. **NFC 相关**
- `hasNfcSupport()` - NFC 近场通信支持
- `hasNfcHostCardEmulation()` - NFC 主机卡模拟
- `hasNfcHostCardEmulationOffHost()` - NFC 离线主机卡模拟
- `hasSecureNfcSupport()` - 安全 NFC 支持
5. **定位相关**
- `hasGpsSupport()` - GPS 定位支持
- `hasNetworkLocationSupport()` - 网络定位支持
- `hasLocationSupport()` - 任何定位服务支持
6. **综合方法**
- `getHardwareFeatures()` - 获取所有硬件特性支持信息
## 使用方法
### 1. 初始化
```kotlin
import com.xyzshell.andinfo.AndInfo
// 在 Application 或 Activity 中初始化
AndInfo.init(applicationContext)
// 获取 InputInfo 实例
val inputInfo = AndInfo.instance.input
```
### 2. USB 功能检测
#### USB Host 支持
```kotlin
// 检查是否支持 USB Host 模式
val hasUsbHost = inputInfo.hasUsbHostSupport()
println("USB Host 支持: ${if (hasUsbHost) "是" else "否"}")
// USB Host 允许 Android 设备连接:
// - USB 键盘
// - USB 鼠标
// - USB 存储设备
// - USB 游戏手柄
// - USB 打印机等
```
#### USB 配件模式
```kotlin
// 检查是否支持 USB 配件模式
val hasUsbAccessory = inputInfo.hasUsbAccessorySupport()
println("USB 配件模式: ${if (hasUsbAccessory) "是" else "否"}")
// USB 配件模式允许 Android 设备作为配件连接到:
// - 汽车娱乐系统
// - 音频设备
// - 医疗设备等
```
### 3. 指纹识别检测
```kotlin
// 检查是否有指纹识别器
val hasFingerprint = inputInfo.hasFingerprintSensor()
println("指纹识别器: ${if (hasFingerprint) "有" else "无"}")
// 用于判断设备是否支持指纹解锁、指纹支付等功能
if (hasFingerprint) {
// 可以使用 BiometricPrompt API 进行指纹认证
println("设备支持指纹认证功能")
}
```
### 4. 红外线传感器检测
```kotlin
// 检查是否有红外线传感器IR Blaster
val hasInfrared = inputInfo.hasInfraredSensor()
println("红外线传感器: ${if (hasInfrared) "有" else "无"}")
// 红外线传感器可用于:
// - 遥控电视
// - 遥控空调
// - 遥控机顶盒等
if (hasInfrared) {
println("设备可以作为万能遥控器使用")
}
```
### 5. UWB 超宽带支持检测
```kotlin
// 检查是否支持 UWBUltra-Wideband
val hasUwb = inputInfo.hasUwbSupport()
println("UWB 支持: ${if (hasUwb) "是" else "否"}")
// UWB 技术用于:
// - 精确室内定位(厘米级)
// - 数字车钥匙
// - 查找设备(类似 AirTag
// - 设备间高速数据传输
if (hasUwb) {
println("设备支持精确定位和数字车钥匙功能")
}
```
### 6. NFC 功能检测
#### 基本 NFC 支持
```kotlin
// 检查是否支持 NFC
val hasNfc = inputInfo.hasNfcSupport()
println("NFC 支持: ${if (hasNfc) "是" else "否"}")
// NFC 用于:
// - 移动支付Apple Pay、Google Pay等
// - 读取 NFC 标签
// - 点对点数据传输
// - 公交卡模拟
```
#### NFC 主机卡模拟HCE
```kotlin
// 检查是否支持 NFC HCE
val hasNfcHce = inputInfo.hasNfcHostCardEmulation()
println("NFC HCE 支持: ${if (hasNfcHce) "是" else "否"}")
// HCE 允许应用模拟 NFC 卡片,无需物理安全元素
// 用于:
// - 虚拟公交卡
// - 虚拟门禁卡
// - 虚拟会员卡
```
#### NFC 离线主机卡模拟
```kotlin
// 检查是否支持离线 HCE
val hasNfcOffHost = inputInfo.hasNfcHostCardEmulationOffHost()
println("NFC 离线 HCE: ${if (hasNfcOffHost) "是" else "否"}")
// 允许在设备离线时进行 NFC 交易
```
#### 安全 NFC
```kotlin
// 检查是否支持安全 NFC
val hasSecureNfc = inputInfo.hasSecureNfcSupport()
println("安全 NFC: ${if (hasSecureNfc) "是" else "否"}")
// 安全 NFC 使用安全元素Secure Element
// 提供更高的安全性,用于:
// - 金融级支付
// - 敏感数据交换
```
### 7. GPS 定位检测
#### GPS 支持
```kotlin
// 检查是否支持 GPS
val hasGps = inputInfo.hasGpsSupport()
println("GPS 支持: ${if (hasGps) "是" else "否"}")
// GPS 提供卫星定位功能
// 用于:
// - 导航
// - 位置追踪
// - 地理标记
```
#### 网络定位
```kotlin
// 检查是否支持网络定位
val hasNetworkLocation = inputInfo.hasNetworkLocationSupport()
println("网络定位: ${if (hasNetworkLocation) "是" else "否"}")
// 网络定位使用:
// - Wi-Fi 定位
// - 基站定位
// 比 GPS 更省电但精度较低
```
#### 任何定位服务
```kotlin
// 检查是否支持任何定位服务
val hasLocation = inputInfo.hasLocationSupport()
println("定位服务: ${if (hasLocation) "是" else "否"}")
// 综合检测设备是否有定位能力
```
### 8. 获取所有硬件特性
```kotlin
// 一次性获取所有硬件特性支持信息
val features = inputInfo.getHardwareFeatures()
println("=== 硬件特性汇总 ===")
println("USB Host: ${if (features.usbHost) "✓" else "✗"}")
println("USB 配件: ${if (features.usbAccessory) "✓" else "✗"}")
println("指纹识别: ${if (features.fingerprint) "✓" else "✗"}")
println("红外线: ${if (features.infrared) "✓" else "✗"}")
println("UWB: ${if (features.uwb) "✓" else "✗"}")
println("NFC: ${if (features.nfc) "✓" else "✗"}")
println("NFC HCE: ${if (features.nfcHce) "✓" else "✗"}")
println("NFC 离线: ${if (features.nfcHceOffHost) "✓" else "✗"}")
println("安全 NFC: ${if (features.secureNfc) "✓" else "✗"}")
println("GPS: ${if (features.gps) "✓" else "✗"}")
println("网络定位: ${if (features.networkLocation) "✓" else "✗"}")
println("定位服务: ${if (features.location) "✓" else "✗"}")
```
### 9. 输入设备信息(原有功能)
```kotlin
// 获取所有输入设备
val devices = inputInfo.getInputDevices()
println("输入设备数量: ${devices.size}")
devices.forEach { device ->
println("--- ${device.name} ---")
println("ID: ${device.id}")
println("类型: ${when {
device.sources and InputDevice.SOURCE_KEYBOARD != 0 -> "键盘"
device.sources and InputDevice.SOURCE_MOUSE != 0 -> "鼠标"
device.sources and InputDevice.SOURCE_TOUCHSCREEN != 0 -> "触摸屏"
device.sources and InputDevice.SOURCE_GAMEPAD != 0 -> "游戏手柄"
else -> "其他"
}}")
println("虚拟设备: ${device.isVirtual}")
println("外部设备: ${device.isExternal}")
println("有震动: ${device.hasVibrator}")
println("有麦克风: ${device.hasMicrophone}")
println()
}
```
## HardwareFeatures 数据类
```kotlin
data class HardwareFeatures(
val usbHost: Boolean, // USB Host 支持
val usbAccessory: Boolean, // USB 配件支持
val fingerprint: Boolean, // 指纹识别器
val infrared: Boolean, // 红外线传感器
val uwb: Boolean, // UWB 支持
val nfc: Boolean, // NFC 支持
val nfcHce: Boolean, // NFC 主机卡模拟
val nfcHceOffHost: Boolean, // NFC 离线主机卡模拟
val secureNfc: Boolean, // 安全 NFC
val gps: Boolean, // GPS 支持
val networkLocation: Boolean, // 网络定位支持
val location: Boolean // 任何定位支持
)
```
## 典型应用场景
### 1. 功能适配检查
```kotlin
fun checkDeviceCapabilities(): DeviceCapabilities {
val inputInfo = AndInfo.instance.input
return DeviceCapabilities(
canUseUsbAccessories = inputInfo.hasUsbHostSupport(),
canUseFingerprint = inputInfo.hasFingerprintSensor(),
canControlTv = inputInfo.hasInfraredSensor(),
canUseNfcPayment = inputInfo.hasNfcSupport(),
canUseDigitalKey = inputInfo.hasUwbSupport(),
canUseGps = inputInfo.hasGpsSupport()
)
}
```
### 2. 功能引导
```kotlin
fun showFeatureTips() {
val inputInfo = AndInfo.instance.input
if (inputInfo.hasInfraredSensor()) {
showTip("您的设备支持红外遥控功能,可以控制电视、空调等设备")
}
if (inputInfo.hasUwbSupport()) {
showTip("您的设备支持 UWB可以使用数字车钥匙功能")
}
if (inputInfo.hasNfcSupport()) {
showTip("您的设备支持 NFC可以使用移动支付和刷卡功能")
}
}
```
### 3. 支付功能检查
```kotlin
fun canUseNfcPayment(): Boolean {
val inputInfo = AndInfo.instance.input
// 检查基本 NFC 支持
if (!inputInfo.hasNfcSupport()) {
return false
}
// 检查 HCE 支持(用于虚拟卡片)
val hasHce = inputInfo.hasNfcHostCardEmulation()
// 检查安全 NFC用于金融级支付
val hasSecureNfc = inputInfo.hasSecureNfcSupport()
return hasHce || hasSecureNfc
}
```
### 4. 定位功能检查
```kotlin
fun getBestLocationMethod(): String {
val inputInfo = AndInfo.instance.input
return when {
inputInfo.hasGpsSupport() -> "GPS高精度"
inputInfo.hasNetworkLocationSupport() -> "网络定位(省电)"
inputInfo.hasLocationSupport() -> "基础定位"
else -> "不支持定位"
}
}
```
### 5. 设备档案生成
```kotlin
fun generateDeviceProfile(): String {
val inputInfo = AndInfo.instance.input
val features = inputInfo.getHardwareFeatures()
return buildString {
appendLine("=== 设备功能档案 ===")
appendLine()
appendLine("📱 连接性")
appendLine("USB Host: ${if (features.usbHost) "✓" else "✗"}")
appendLine("USB 配件: ${if (features.usbAccessory) "✓" else "✗"}")
appendLine("NFC: ${if (features.nfc) "✓" else "✗"}")
appendLine("UWB: ${if (features.uwb) "✓" else "✗"}")
appendLine()
appendLine("🔐 安全性")
appendLine("指纹: ${if (features.fingerprint) "✓" else "✗"}")
appendLine("安全 NFC: ${if (features.secureNfc) "✓" else "✗"}")
appendLine()
appendLine("📍 定位")
appendLine("GPS: ${if (features.gps) "✓" else "✗"}")
appendLine("网络定位: ${if (features.networkLocation) "✓" else "✗"}")
appendLine()
appendLine("🔌 特殊功能")
appendLine("红外遥控: ${if (features.infrared) "✓" else "✗"}")
}
}
```
## 示例输出
### 完整硬件特性检测结果
```
=== 硬件特性汇总 ===
USB Host: ✓
USB 配件: ✓
指纹识别: ✓
红外线: ✗
UWB: ✓
NFC: ✓
NFC HCE: ✓
NFC 离线: ✗
安全 NFC: ✓
GPS: ✓
网络定位: ✓
定位服务: ✓
```
### 高端设备示例(如 Samsung Galaxy S24 Ultra
```
USB Host: ✓
USB 配件: ✓
指纹识别: ✓(屏下指纹)
红外线: ✗
UWB: ✓数字车钥匙、SmartTag+ 支持)
NFC: ✓
NFC HCE: ✓
安全 NFC: ✓Samsung Pay
GPS: ✓
```
### 中端设备示例(如 Google Pixel 7a
```
USB Host: ✓
USB 配件: ✓
指纹识别: ✓(屏下指纹)
红外线: ✗
UWB: ✗
NFC: ✓
NFC HCE: ✓
安全 NFC: ✗
GPS: ✓
```
### 预算设备示例
```
USB Host: ✓
USB 配件: ✓
指纹识别: ✓(侧面指纹)
红外线: ✗
UWB: ✗
NFC: ✗
NFC HCE: ✗
安全 NFC: ✗
GPS: ✓
```
## 注意事项
1. **权限要求**
- USB 功能不需要特殊权限
- 指纹使用需要 `USE_BIOMETRIC` 权限
- NFC 使用需要 `NFC` 权限
- 定位使用需要 `ACCESS_FINE_LOCATION``ACCESS_COARSE_LOCATION` 权限
2. **版本兼容性**
- UWB 支持需要 Android 12+
- 某些 NFC 功能需要 Android 4.4+
3. **设备差异**
- 不同品牌和型号的设备支持的功能不同
- 某些功能可能被厂商禁用
4. **用户设置**
- 即使硬件支持,用户也可能在设置中禁用某些功能
- 建议在使用前检查功能是否已启用
## 完成度
**100%** - 所有请求的功能都已实现
- USB Host 支持检测 ✅
- USB 配件支持检测 ✅
- 指纹识别器检测 ✅
- 红外线传感器检测 ✅
- UWB 支持检测 ✅
- NFC 支持检测 ✅
- 安全 NFC 支持检测 ✅
- GPS 支持检测 ✅
- 完整的中文注释 ✅
- 综合查询方法 ✅

View File

@ -299,6 +299,7 @@ class BuildInfo(private val context: Context) {
}
}
/**
* 是否为平板设备
*/

View File

@ -1,55 +1,307 @@
package com.xyzshell.andinfo.libs
import android.content.Context
import android.content.pm.PackageManager
import android.hardware.input.InputManager
import android.os.Build
import android.view.InputDevice
import android.view.KeyCharacterMap
import androidx.annotation.RequiresApi
/**
* 输入设备信息工具类
* 提供所有输入设备键盘鼠标触摸屏游戏手柄等的详细信息
*/
class InputInfo(private val context: Context) {
/**
* 输入管理器
*/
private val inputManager = context.getSystemService(InputManager::class.java)
/**
* 获取所有输入设备列表
* @return 输入设备信息列表
*/
fun getInputDevices(): List<InputDeviceInfo> {
return inputManager.inputDeviceIds.toList().mapNotNull { id ->
inputManager.getInputDevice(id)?.let { device -> InputDeviceInfo(device) }
}
}
/**
* 根据设备ID获取指定的输入设备信息
* @param deviceId 设备ID
* @return 输入设备信息如果设备不存在则返回null
*/
fun getInputDevice(deviceId: Int): InputDeviceInfo? {
return inputManager.getInputDevice(deviceId)?.let { device ->
InputDeviceInfo(device)
}
}
/**
* 获取触摸的最大遮挡不透明度
* Android 12+ 可用
* 用于安全性防止恶意应用遮挡触摸事件
* @return 最大不透明度值 (0.0-1.0)
*/
@RequiresApi(Build.VERSION_CODES.S)
fun getMaximumObscuringOpacityForTouch(): Float {
return inputManager.maximumObscuringOpacityForTouch
}
/**
* 检查是否启用了触控笔指针图标
* Android 14+ 可用
* @return 是否启用触控笔指针图标
*/
@RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
fun isStylusPointerIconEnabled(): Boolean {
return inputManager.isStylusPointerIconEnabled
}
// ==================== 硬件特性检测 ====================
/**
* 检查设备是否支持 USB Host 模式
* USB Host 模式允许 Android 设备作为主机连接其他 USB 设备
* @return 是否支持 USB Host
*/
fun hasUsbHostSupport(): Boolean {
return context.packageManager.hasSystemFeature(PackageManager.FEATURE_USB_HOST)
}
/**
* 检查设备是否支持 USB 配件模式
* USB 配件模式允许 Android 设备作为 USB 配件连接到其他设备
* @return 是否支持 USB 配件模式
*/
fun hasUsbAccessorySupport(): Boolean {
return context.packageManager.hasSystemFeature(PackageManager.FEATURE_USB_ACCESSORY)
}
/**
* 检查设备是否有指纹识别器
* @return 是否有指纹识别器
*/
fun hasFingerprintSensor(): Boolean {
return context.packageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)
}
/**
* 检查设备是否有红外线传感器IR Blaster
* 红外线传感器可用于遥控电视空调等设备
* @return 是否有红外线传感器
*/
fun hasInfraredSensor(): Boolean {
return context.packageManager.hasSystemFeature(PackageManager.FEATURE_CONSUMER_IR)
}
/**
* 检查设备是否支持 UWBUltra-Wideband 超宽带
* UWB 用于精确定位和设备间通信
* Android 12+ 可用
* @return 是否支持 UWB
*/
fun hasUwbSupport(): Boolean {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
context.packageManager.hasSystemFeature(PackageManager.FEATURE_UWB)
} else {
false
}
}
/**
* 检查设备是否支持 NFCNear Field Communication 近场通信
* @return 是否支持 NFC
*/
fun hasNfcSupport(): Boolean {
return context.packageManager.hasSystemFeature(PackageManager.FEATURE_NFC)
}
/**
* 检查设备是否支持 NFC HCEHost Card Emulation 主机卡模拟
* HCE 允许应用模拟 NFC 卡片
* @return 是否支持 NFC HCE
*/
fun hasNfcHostCardEmulation(): Boolean {
return context.packageManager.hasSystemFeature(PackageManager.FEATURE_NFC_HOST_CARD_EMULATION)
}
/**
* 检查设备是否支持 NFC 离线主机卡模拟
* 允许在设备离线时进行 NFC 交易
* @return 是否支持离线 HCE
*/
fun hasNfcHostCardEmulationOffHost(): Boolean {
return context.packageManager.hasSystemFeature(PackageManager.FEATURE_NFC_HOST_CARD_EMULATION_NFCF)
}
/**
* 检查设备是否支持安全 NFCNFC with Secure Element
* 使用安全元素进行 NFC 交易更安全
* @return 是否支持安全 NFC
*/
fun hasSecureNfcSupport(): Boolean {
// 检查是否有安全元素相关的 NFC 功能
return context.packageManager.hasSystemFeature("android.hardware.nfc.ese") ||
context.packageManager.hasSystemFeature("android.hardware.nfc.uicc")
}
/**
* 检查设备是否支持 GPS 定位
* @return 是否支持 GPS
*/
fun hasGpsSupport(): Boolean {
return context.packageManager.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS)
}
/**
* 检查设备是否支持网络定位
* @return 是否支持网络定位
*/
fun hasNetworkLocationSupport(): Boolean {
return context.packageManager.hasSystemFeature(PackageManager.FEATURE_LOCATION_NETWORK)
}
/**
* 检查设备是否支持任何定位服务
* @return 是否支持定位
*/
fun hasLocationSupport(): Boolean {
return context.packageManager.hasSystemFeature(PackageManager.FEATURE_LOCATION)
}
/**
* 获取所有硬件特性支持信息
* @return 硬件特性支持信息数据类
*/
fun getHardwareFeatures(): HardwareFeatures {
return HardwareFeatures(
usbHost = hasUsbHostSupport(),
usbAccessory = hasUsbAccessorySupport(),
fingerprint = hasFingerprintSensor(),
infrared = hasInfraredSensor(),
uwb = hasUwbSupport(),
nfc = hasNfcSupport(),
nfcHce = hasNfcHostCardEmulation(),
nfcHceOffHost = hasNfcHostCardEmulationOffHost(),
secureNfc = hasSecureNfcSupport(),
gps = hasGpsSupport(),
networkLocation = hasNetworkLocationSupport(),
location = hasLocationSupport()
)
}
/**
* 硬件特性支持信息数据类
*/
data class HardwareFeatures(
val usbHost: Boolean, // USB Host 支持
val usbAccessory: Boolean, // USB 配件支持
val fingerprint: Boolean, // 指纹识别器
val infrared: Boolean, // 红外线传感器
val uwb: Boolean, // UWB 支持
val nfc: Boolean, // NFC 支持
val nfcHce: Boolean, // NFC 主机卡模拟
val nfcHceOffHost: Boolean, // NFC 离线主机卡模拟
val secureNfc: Boolean, // 安全 NFC
val gps: Boolean, // GPS 支持
val networkLocation: Boolean, // 网络定位支持
val location: Boolean // 任何定位支持
)
/**
* 输入设备详细信息数据类
* 包含设备的所有属性和功能
*/
data class InputDeviceInfo(val inputDevice: InputDevice) {
/**
* 设备ID
* 唯一标识一个输入设备
*/
val id: Int get() = inputDevice.id
/**
* 控制器编号
* 对于游戏手柄表示第几个手柄1-4
*/
val controllerNumber: Int get() = inputDevice.controllerNumber
/**
* 供应商ID
* USB设备的供应商标识
*/
val vendorId: Int get() = inputDevice.vendorId
/**
* 产品ID
* USB设备的产品标识
*/
val productId: Int get() = inputDevice.productId
/**
* 设备描述符
* 设备的唯一描述字符串
*/
val descriptor: String? get() = inputDevice.descriptor
/**
* 是否为虚拟设备
* 虚拟设备如软键盘注入的输入事件等
*/
val isVirtual: Boolean get() = inputDevice.isVirtual
/**
* 是否为外部设备
* Android 10+ 可用
* 外部设备如USB键盘蓝牙鼠标等
*/
val isExternal: Boolean
get() = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
inputDevice.isExternal
} else {
false
}
/**
* 设备名称
* 示例: "Virtual Keyboard", "USB Mouse", "Bluetooth Gamepad"
*/
val name: String get() = inputDevice.name
/**
* 输入源类型标志位
* 表示设备支持的输入类型键盘鼠标触摸屏等
*/
val sources: Int get() = inputDevice.sources
/**
* 键盘类型
* KEYBOARD_TYPE_NONE - 无键盘
* KEYBOARD_TYPE_NON_ALPHABETIC - 非字母键盘如数字键盘
* KEYBOARD_TYPE_ALPHABETIC - 字母键盘
*/
val keyboardType: Int get() = inputDevice.keyboardType
/**
* 键盘字符映射类型
* 表示键盘的字符映射能力
*/
val keyCharacterMapKeyboardType: Int get() = inputDevice.keyCharacterMap.keyboardType
/**
* 运动范围数量
* 表示设备支持的轴数量如游戏手柄的摇杆扳机键等
*/
val motionRangesCount: Int get() = inputDevice.motionRanges.size
/**
* 是否有震动功能
* Android 12+ 使用 vibratorManager之前版本使用 vibrator
*/
val hasVibrator: Boolean
get() = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
inputDevice.vibratorManager.vibratorIds.isNotEmpty()
@ -57,21 +309,47 @@ class InputInfo(private val context: Context) {
@Suppress("DEPRECATION")
inputDevice.vibrator.hasVibrator()
}
/**
* 设备是否已启用
* Android 8.1+ 可用
* 禁用的设备不会产生输入事件
*/
val isEnabled: Boolean
get() = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
inputDevice.isEnabled
} else {
true
}
/**
* 是否有麦克风
* 某些输入设备如游戏手柄可能内置麦克风
*/
val hasMicrophone: Boolean get() = inputDevice.hasMicrophone()
companion object {
/**
* 键盘类型映射表英文
*/
val keyboardTypeToString = mapOf(
InputDevice.KEYBOARD_TYPE_NONE to "None",
InputDevice.KEYBOARD_TYPE_NON_ALPHABETIC to "Non-alphabetic",
InputDevice.KEYBOARD_TYPE_ALPHABETIC to "Alphabetic",
)
/**
* 键盘类型映射表中文
*/
val keyboardTypeToStringChinese = mapOf(
InputDevice.KEYBOARD_TYPE_NONE to "无键盘",
InputDevice.KEYBOARD_TYPE_NON_ALPHABETIC to "非字母键盘",
InputDevice.KEYBOARD_TYPE_ALPHABETIC to "字母键盘",
)
/**
* 键盘字符映射类型映射表英文
*/
val keyCharacterMapKeyboardTypeToString = mapOf(
KeyCharacterMap.NUMERIC to "Numeric",
KeyCharacterMap.PREDICTIVE to "Predictive",
@ -80,6 +358,20 @@ class InputInfo(private val context: Context) {
KeyCharacterMap.SPECIAL_FUNCTION to "Special Function",
)
/**
* 键盘字符映射类型映射表中文
*/
val keyCharacterMapKeyboardTypeToStringChinese = mapOf(
KeyCharacterMap.NUMERIC to "数字键盘",
KeyCharacterMap.PREDICTIVE to "预测输入",
KeyCharacterMap.ALPHA to "字母键盘",
KeyCharacterMap.FULL to "完整键盘",
KeyCharacterMap.SPECIAL_FUNCTION to "特殊功能键盘",
)
/**
* 输入源类别映射表英文
*/
val sourceClassToString = mapOf(
InputDevice.SOURCE_CLASS_BUTTON to "Button",
InputDevice.SOURCE_CLASS_POINTER to "Pointer",
@ -88,6 +380,20 @@ class InputInfo(private val context: Context) {
InputDevice.SOURCE_CLASS_JOYSTICK to "Joystick",
)
/**
* 输入源类别映射表中文
*/
val sourceClassToStringChinese = mapOf(
InputDevice.SOURCE_CLASS_BUTTON to "按钮",
InputDevice.SOURCE_CLASS_POINTER to "指针",
InputDevice.SOURCE_CLASS_TRACKBALL to "轨迹球",
InputDevice.SOURCE_CLASS_POSITION to "位置",
InputDevice.SOURCE_CLASS_JOYSTICK to "游戏杆",
)
/**
* 输入源类型映射表英文
*/
val sourceToString = mapOf(
InputDevice.SOURCE_KEYBOARD to "Keyboard",
InputDevice.SOURCE_DPAD to "D-Pad",
@ -102,6 +408,24 @@ class InputInfo(private val context: Context) {
InputDevice.SOURCE_JOYSTICK to "Joystick",
InputDevice.SOURCE_HDMI to "HDMI",
)
/**
* 输入源类型映射表中文
*/
val sourceToStringChinese = mapOf(
InputDevice.SOURCE_KEYBOARD to "键盘",
InputDevice.SOURCE_DPAD to "方向键",
InputDevice.SOURCE_GAMEPAD to "游戏手柄",
InputDevice.SOURCE_TOUCHSCREEN to "触摸屏",
InputDevice.SOURCE_MOUSE to "鼠标",
InputDevice.SOURCE_STYLUS to "触控笔",
InputDevice.SOURCE_TRACKBALL to "轨迹球",
InputDevice.SOURCE_TOUCHPAD to "触控板",
InputDevice.SOURCE_TOUCH_NAVIGATION to "触摸导航",
InputDevice.SOURCE_ROTARY_ENCODER to "旋转编码器",
InputDevice.SOURCE_JOYSTICK to "游戏杆",
InputDevice.SOURCE_HDMI to "HDMI",
)
}
}
}