簡體   English   中英

如何檢查設備上是否存在特定傳感器?

[英]How check if a specific sensor exists on a device?

我正在開發一個使用傳感器的 android 應用程序,我想知道檢測設備是否具有特定傳感器的最佳方法,比如接近傳感器。

此外,是否有任何“過濾器”可以應用於清單,因此其設備上沒有接近傳感器的用戶將無法安裝該應用程序 如果存在,此“過濾器”在 Google Play 上是否也有效,因此用戶將無法看到該應用程序

這很可能是您在以編程方式檢查功能時正在尋找的內容

PackageManager PM= this.getPackageManager();
boolean gps = PM.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS);
boolean acc = PM.hasSystemFeature(PackageManager.FEATURE_SENSOR_ACCELEROMETER);

此鏈接解釋了您可以如何在市場中過濾您的應用程序,請具體查看部分

市場過濾器

檢查特定傳感器:

public String getSystemInfo(PackageManager pm/* activity.getPackageManager() */) {
    return ""
    + "\nSDK: " + Build.VERSION.SDK_INT
    + "\nMODEL: " + Build.MODEL
    + "\nBrand: " + Build.BRAND
    + "\nManufacture: " + Build.MANUFACTURER
    + "\nAndroid Version: " + Build.VERSION.RELEASE
    + "\nSen-Fingerprint: " + hasFP()

    + "\nSen-Light: " + hasSen(pm, PackageManager.FEATURE_SENSOR_LIGHT)
    + "\nSen-Compass: " + hasSen(pm, PackageManager.FEATURE_SENSOR_COMPASS)
    + "\nSen-Proximity: " + hasSen(pm, PackageManager.FEATURE_SENSOR_PROXIMITY)
    + "\nSen-ECG(API 21): " + hasSen(pm, PackageManager.FEATURE_SENSOR_HEART_RATE_ECG)
    + "\nSen-Temp(API 21): " + hasSen(pm, PackageManager.FEATURE_SENSOR_AMBIENT_TEMPERATURE)
    + "\nSen-Accelerometer: " + hasSen(pm, PackageManager.FEATURE_SENSOR_ACCELEROMETER)
    + "\nSen-Humidity(API 21): " + hasSen(pm, PackageManager.FEATURE_SENSOR_RELATIVE_HUMIDITY)
    + "\nSen-Gyroscope(API 9): " + hasSen(pm, PackageManager.FEATURE_SENSOR_GYROSCOPE)
    + "\nSen-Barometer(API 9): " + hasSen(pm, PackageManager.FEATURE_SENSOR_BAROMETER)
    + "\nSen-HeartRate(API 20): " + hasSen(pm, PackageManager.FEATURE_SENSOR_HEART_RATE)
    + "\nSen-StepCounter(API 19): " + hasSen(pm, PackageManager.FEATURE_SENSOR_STEP_COUNTER)
    + "\nSen-StepDetector(API 19): " + hasSen(pm, PackageManager.FEATURE_SENSOR_STEP_DETECTOR);
}
public boolean hasFP() {
    return (Build.FINGERPRINT != null && !Build.FINGERPRINT.equals(""));
}
public boolean hasSen(PackageManager packageManager, String sensor) {
    try {
        return packageManager.hasSystemFeature(sensor);
    } catch (Exception ignored) {
        return false;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM