简体   繁体   English

从Smartwatch Android Wear获取数据到智能手机

[英]Get data from Smartwatch Android Wear to Smartphone

I have made some apps (pedometer, heart rate, audio recorder) for the moto360 with android wear. 我为带有android的moto360制作了一些应用程序(计步器,心率,录音机)。 everything works fine, but I don't know how to save the data on the watch and how to access the data on the smartphone. 一切正常,但我不知道如何保存手表上的数据以及如何访问智能手机上的数据。 I have managed to send messages to the watch, but I can't send data from the watch to the phone. 我已设法向手表发送消息,但我无法将手表中的数据发送到手机。 I can save my data on the smartphone, but I don't know how to manage it on the smartwatch. 我可以将数据保存在智能手机上,但我不知道如何在智能手表上管理它。 can someone show me a tutorial or an example? 有人可以给我一个教程或一个例子吗? thank you so much! 非常感谢!

edit: The following Code below is used for tracking the heartrate on the Moto360 and it works fine. 编辑:下面的代码用于跟踪Moto360的心率,它工作正常。 I tried to transfer the data from the watch to the Phone for that I used this tutorial -> https://developer.android.com/training/wearables/data-layer/data-items.html 我尝试将数据从手表传输到手机,因为我使用了本教程 - > https://developer.android.com/training/wearables/data-layer/data-items.html

After implementing the Code from the android page I couldn`t run the Project on the device! 从android页面实现代码后,我无法在设备上运行Project!

    public class MainActivity extends Activity implements SensorEventListener {


        private static final String TAG = "MainActivity";
        private TextView mTextViewStepCount;
        private TextView mTextViewStepDetect;
        private TextView mTextViewHeart;
        PutDataMapRequest dataMap = PutDataMapRequest.create("/count");
        GoogleApiClient mGoogleApiClient;

        @Override
        protected void onCreate(Bundle savedInstanceState) {


            getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
            stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
                @Override
                public void onLayoutInflated(WatchViewStub stub) {

                    mTextViewStepCount = (TextView) stub.findViewById(R.id.step_count);
                    mTextViewStepDetect = (TextView) stub.findViewById(R.id.step_detect);
                    mTextViewHeart = (TextView) stub.findViewById(R.id.heart);
                    getStepCount();

                }
            });
        }

        private void getStepCount() {
            SensorManager mSensorManager = ((SensorManager) getSystemService(SENSOR_SERVICE));
            Sensor mHeartRateSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);
            Sensor mStepCountSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
            Sensor mStepDetectSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR);

            mSensorManager.registerListener(this, mHeartRateSensor, SensorManager.SENSOR_DELAY_NORMAL);
            mSensorManager.registerListener(this, mStepCountSensor, SensorManager.SENSOR_DELAY_NORMAL);
            mSensorManager.registerListener(this, mStepDetectSensor, SensorManager.SENSOR_DELAY_NORMAL);
        }

        private String currentTimeStr() {
            Calendar c = Calendar.getInstance();
            SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
            return df.format(c.getTime());
        }

        public void onAccuracyChanged(Sensor sensor, int accuracy) {
            Log.d(TAG, "onAccuracyChanged - accuracy: " + accuracy);
        }

        public void onSensorChanged(SensorEvent event) {
            if (event.sensor.getType() == Sensor.TYPE_HEART_RATE) {
                String msg = "" + (int) event.values[0];

                mTextViewHeart.setText(msg);
                Log.d(TAG, msg);

            } else if (event.sensor.getType() == Sensor.TYPE_STEP_COUNTER) {
                String msg = "Count: " + (int) event.values[0];
                mTextViewStepCount.setText(msg);
                Log.d(TAG, msg);
            } else if (event.sensor.getType() == Sensor.TYPE_STEP_DETECTOR) {
                String msg = "Detected at " + currentTimeStr();
                mTextViewStepDetect.setText(msg);
                Log.d(TAG, msg);
            } else {
                Log.d(TAG, "Unknown sensor type");
            }
        }
    }

this code helps me a lot, i hope it helps many other people :) 这段代码对我很有帮助,我希望它可以帮助很多其他人:)

https://github.com/pocmo/SensorDashboard https://github.com/pocmo/SensorDashboard

You need to uses data assets. 您需要使用数据资产。 Image sample: 图片样本:

private static Asset createAssetFromBitmap(Bitmap bitmap) {
    final ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteStream);
    return Asset.createFromBytes(byteStream.toByteArray());
}

and then 接着

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image);
Asset asset = createAssetFromBitmap(bitmap);
PutDataRequest request = PutDataRequest.create("/image");
request.putAsset("profileImage", asset);
Wearable.DataApi.putDataItem(mGoogleApiClient, request);

more http://developer.android.com/training/wearables/data-layer/assets.html 更多http://developer.android.com/training/wearables/data-layer/assets.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Android Wear:通过智能手机应用程序控制smartwatch应用程序 - Android Wear: Control smartwatch app through smartphone app 通过蓝牙将数据从SmartWatch传输到智能手机 - Transmit data from smartwatch to smartphone over bluetooth Android Wear和Google Fit:如何在智能手表和智能手机之间强制更新数据集? - Android Wear and Google Fit: How to force update of datasets between smartwatch and smartphone? Android Wear和智能手机之间数据传输的安全性 - Security of data transmission between Android wear and smartphone 将通知从智能手机推送到SmartWatch - Pushing notification from smartphone to smartwatch Android Wear Smartwatch中的按钮 - push-button in Android Wear smartwatch 如何在不与 Google Cloud 共享数据的情况下将数据从智能手表同步到智能手机? - How to Sync Data from a Smartwatch to a Smartphone without Sharing Data with the Google Cloud? 穿OS - 来自smartwatch的http帖子 - wear OS - http post from smartwatch 在 Android Wear OS(即 CSV)上保存和传输智能手表传感器数据的最佳方式是什么? - What is the best way to save and transfer smartwatch sensor data on Android Wear OS (i.e. as CSV)? Android Wear:如何通过通知通知智能手机 - Android Wear: How to notify smartphone via notifications
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM