2014-12-09 8 views
2

Я сделал несколько приложений (шагомер, сердечный ритм, аудиозапись) для moto360 с износом android. все работает отлично, но я не знаю, как сохранить данные на часах и как получить доступ к данным на смартфоне. Мне удалось отправить сообщения на часы, но я не могу отправить данные с телефона на телефон. Я могу сохранить свои данные на смартфоне, но я не знаю, как управлять им на smartwatch. может ли кто-нибудь показать мне учебник или пример? Спасибо большое!Получить данные от Smartwatch Android Wear to Smartphone

Редактировать: Следующий нижеприведенный код используется для отслеживания сердечного ритма на Moto360, и он отлично работает. Я попытался передать данные с часов на телефон, чтобы использовать этот учебник ->https://developer.android.com/training/wearables/data-layer/data-items.html

После внедрения кода со страницы Android я не мог запустить проект на устройстве!

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"); 
      } 
     } 
    } 
+0

есть вы посмотрели на это? http://developer.android.com/training/wearals/data-layer/data-items.html – tyczj

+0

да, и я посмотрел на это http://developer.android.com/reference/com/google/android/gms /wearable/DataItem.html, но я не знаю, что я должен делать с этим –

+0

, и что конкретно вы пытаетесь отправить? – tyczj

ответ

0

Вам необходимо использовать данные. Образец изображения:

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

, а затем

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); 

более http://developer.android.com/training/wearables/data-layer/assets.html

+0

Я отправил свой файл mainActivity. Я не уверен, как реализовать свои Codesnippets в моем проекте. Спасибо за помощь!! –