当前位置: 首页 > 知识库问答 >
问题:

心率监测器不提供反馈

汪甫
2023-03-14

我正在尝试显示佩戴智能手表(LG Urbane)的人的心率。然而,传感器从未给出任何反馈。我在stackoverflow上尝试了多个解决方案,但都没有效果。我已经在我的手机和可穿戴清单中添加了一个使用身体传感器的请求,但我从未收到一个请求上述许可的弹出窗口。卸载应用程序并重新安装也没有帮助。

这是我的活动:

public class Monitor extends WearableActivity implements SensorEventListener{

    // /Users/Lieven/Library/Android/sdk/platform-tools/adb connect 192.168.1.15
    // /Users/Lieven/Library/Android/sdk/platform-tools/adb -s 192.168.1.15:5555 uninstall be.ehb.dt.finalwork_lievenluyckx_v001


    private final String LOG_TAG = "Monitor";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_wear);
        setAmbientEnabled();


        Log.d(LOG_TAG, "onCreate");


        //JUISTE LETTERTYPE IN TEXTVIEWS ZETTEN
        Typeface custom_font = Typeface.createFromAsset(getAssets(),  "fonts/brusselineregular.ttf");

        TextView monitor_emotion_text = (TextView) findViewById(R.id.monitor_emotion_text);
        TextView monitor_bpm_counter = (TextView) findViewById(R.id.monitor_bpm_counter);
        TextView monitor_bpm_label = (TextView) findViewById(R.id.monitor_bpm_label);

        monitor_emotion_text.setTypeface(custom_font);
        monitor_bpm_counter.setTypeface(custom_font);
        monitor_bpm_label.setTypeface(custom_font);


       /*
       * SENSOR TUTORIAL
       * https://www.tutorialspoint.com/android/android_sensors.htm
       * DOOR tutorialspoint
       * */

        SensorManager sensorManager;
        sensorManager = (SensorManager)  this.getSystemService(SENSOR_SERVICE);

        Sensor heartRateSensor;
        heartRateSensor = sensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);

        sensorManager.registerListener(this, heartRateSensor, SensorManager.SENSOR_DELAY_NORMAL);
        Log.d(LOG_TAG, "Listener registered");

    }

    @Override
    public void onSensorChanged(SensorEvent event) {
        //Log.d(LOG_TAG, event.sensor.getType() + "");
        if (event.sensor.getType() == Sensor.TYPE_HEART_RATE) {
            String msg = "" + (int)event.values[0];
            Log.d(LOG_TAG, msg);
        }
        else{
            Log.d(LOG_TAG, "Unknown sensor type");
        }
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        Log.d(LOG_TAG, "Accuracy changed to " + accuracy + "");
    }


    @Override
    public void onEnterAmbient(Bundle ambientDetails) {
        super.onEnterAmbient(ambientDetails);
        updateDisplay();
    }

    @Override
    public void onUpdateAmbient() {
        super.onUpdateAmbient();
        updateDisplay();
    }

    @Override
    public void onExitAmbient() {
        updateDisplay();
        super.onExitAmbient();
    }

    private void updateDisplay() {
        if (isAmbient()) {
           /* CODE VOOR WANNEER HET SCHERM IN STANDBY VALT */
        } else {

        }
    }

}

这是我的可穿戴舱单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="be.ehb.dt.finalwork_lievenluyckx_v001">

    <uses-feature android:name="android.hardware.type.watch" />

    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <uses-permission android:name="android.permission.BODY_SENSORS"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/billie_coverdefault"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@android:style/Theme.DeviceDefault">
        <uses-library
            android:name="com.google.android.wearable"
            android:required="false" />

        <activity
            android:name=".Monitor"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.DeviceDefault.Light">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

这是我第一次为可穿戴设备创建应用程序,感觉很难获得任何有用的文档。

建筑等级(磨损)

apply plugin: 'com.android.application'

android {
    allprojects {
        repositories {
            jcenter()
            maven {
                url "https://maven.google.com"
            }
        }
    }

    compileSdkVersion 25
    buildToolsVersion "25.0.1"
    defaultConfig {
        applicationId "be.ehb.dt.finalwork_lievenluyckx_v001"
        minSdkVersion 25
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile 'com.android.support:wear:26.0.0'
    compile 'com.google.android.support:wearable:2.0.3'
    provided 'com.google.android.wearable:wearable:2.0.3'
}

建筑格拉德尔(流动电话)

apply plugin: 'com.android.application'


android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"
    defaultConfig {
        applicationId "be.ehb.dt.finalwork_lievenluyckx_v001"
        minSdkVersion 23
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

        jackOptions {
            enabled true
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.1', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    wearApp project(':wear')
    compile 'com.google.android.gms:play-services:8.1.0'
    compile 'com.android.support:appcompat-v7:24.1.1'
    compile 'com.mpatric:mp3agic:0.9.0'
    testCompile 'junit:junit:4.12'


}

共有1个答案

袁建木
2023-03-14

从Android指南获取权限:

如果设备运行的是Android 6.0(API级别23)或更高版本,并且应用的目标SdkVersion为23或更高,则应用会在运行时向用户请求权限。

您的目标API为25,身体传感器被视为“危险权限”,因此您必须在运行时请求权限。请参阅本指南,了解有关在运行时请求权限的指导。

 类似资料:
  • 我无法理解BLE心率特性的返回数据(service,Characteristic)。 根据规范,将有6或7字节的数据(当base64解码时),我完全理解在这种情况下如何处理它。 但有时它不会返回6或7个字节,而是8个字节,更罕见的是4个字节,我不知道为什么会有更多/更少的字节,以及添加的字节是什么意思,或者哪些字节被遗漏了。 我可以跳过所有没有6或7字节的情况,但我想完全理解这一点。 我确信bas

  • 手表利用 Polar Precision Prime™ 传感器融合技术,从您的手腕测量心率。这一新型的心率创新结合光学心率测量和皮肤接触测量,并排除对心率信号的任何干扰。即使在较为苛刻的条件和训练中,也能准确地跟踪您的心率。 虽然训练时存在许多暗示身体状况的主观迹象(主观体力感觉、呼吸频率和身体感觉),但都不如测量心率可靠。它是受内在和外在因素影响的客观数据,这意味着您可以获得关于您的身体状态的可

  • 手表利用 Polar Precision Prime™ 传感器融合技术,从您的手腕测量心率。这一新型的心率创新结合光学心率测量和皮肤接触测量,并排除对心率信号的任何干扰。即使在较为苛刻的条件和训练中,也能准确地跟踪您的心率。 虽然训练时存在许多暗示身体状况的主观迹象(主观体力感觉、呼吸频率和身体感觉),但都不如测量心率可靠。它是受内在和外在因素影响的客观数据,这意味着您可以获得关于您的身体状态的可

  • 我有一个polar H10,我想读取bpm和rr值,参考特征规范,我知道从通知句柄读取的每个字节,但是,我仍然无法理解生成的值。例如:以下是gatt工具的示例输出gattool的示例输出屏幕截图: 现在,我明白了以下内容:其中(10 Flags= 但我不理解以下内容:根据文档,它表示存在1个或多个rr值。但这意味着什么呢?如何接收两个rr值? 旁注:目标是从这些值中提取HRV特征。

  • 我想知道是否有一种方法可以通过Spring Boot致动器获得CPU使用指标?我可以使用/metrics和/healthendpoint查看其他指标,但无法获得CPU使用情况。我想避免编写一个额外的类来查看CPU使用情况。知道吗?谢谢

  • 问题内容: 我正在尝试使用MainActivity.java上的以下代码访问LG Watch Urbane的心率传感器: 问题是我收到此错误: 发生该错误是因为没有与TYPE_HEART_RATE相关联的传感器。因此,我编写了一些代码以使用.getSensorList(Sensor.TYPE_ALL)方法获取传感器的完整列表,我得到了以下信息: 我在那里没有看到任何心率传感器,所以我不知道为了从中