1 2 3 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ibm.hcs.heartrate" > <uses-permission android:name="android.permission.BODY_SENSORS" /> … |
1 | <string name="heartRateText">Heart Rate : N/A</string> |
1 2 3 4 5 6 7 8 9 10 11 12 | @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_heart_rate_wear); final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub); stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() { @Override public void onLayoutInflated(WatchViewStub stub) { mTextView = (TextView) stub.findViewById(R.id.heartRateTextView); } }); } |
1 | <service android:name=".HeartRateWearService"> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | public class HeartRateWearService extends Service implements SensorEventListener{ private SensorManager sensorManager; private Sensor heartRateSensor; private ScheduledExecutorService heartRateScheduler; public HeartRateWearService() { } @Override public void onCreate() { super.onCreate(); getHeartRateValues(); } private void getHeartRateValues() { sensorManager = ((SensorManager) getSystemService(SENSOR_SERVICE)); heartRateSensor = sensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE); if (heartRateSensor != null) { heartRateScheduler = Executors.newScheduledThreadPool(1); heartRateScheduler.scheduleAtFixedRate( new Runnable() { @Override public void run() { sensorManager.registerListener(HeartRateWearService.this, heartRateSensor, SensorManager.SENSOR_DELAY_NORMAL); try { Thread.sleep(10000); } catch (InterruptedException e) { } sensorManager.unregisterListener(HeartRateWearService.this,heartRateSensor); } }, 3, 15, TimeUnit.SECONDS); } } @Override public IBinder onBind(Intent intent) { return null; } @Override public void onDestroy() { if (sensorManager != null) sensorManager.unregisterListener(this); heartRateScheduler.shutdown(); super.onDestroy(); } @Override public void onSensorChanged(SensorEvent event) { // sends an Intent to the Activity Intent intent = new Intent(); intent.setAction("heartRateAction"); intent.putExtra("HeartRate", event.values[0]); sendBroadcast(intent); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |