2014-12-09 4 views
2

Android 마모가있는 moto360 용 앱 (만보계, 심박수, 오디오 레코더)을 만들었습니다. 모든 것이 잘 작동하지만 시계에 데이터를 저장하는 방법과 스마트 폰의 데이터에 액세스하는 방법을 알지 못합니다. 내가 시계에 메시지를 보낼 수는 있지만 시계에서 전화로 데이터를 보낼 수는 없습니다. 내 데이터를 스마트 폰에 저장할 수는 있지만 스마트 워치에서 데이터를 관리하는 방법을 알지 못합니다. 누군가 내가 튜토리얼이나 예제를 보여줄 수 있습니까? 정말 고맙습니다!Smartwatch Android Wear에서 스마트 폰으로 데이터 가져 오기

편집 : 아래의 코드는 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

가지고

https://github.com/pocmo/SensorDashboard 도움이되기를 바랍니다, 나에게 많은 도움이 너 봤어? http://developer.android.com/training/wearables/data-layer/data-items.html – tyczj

+0

예,이 http://developer.android.com/reference/com/google/android/gms를 보았습니다. /wearable/DataItem.html하지만 나도 모르겠다. 그걸로 무엇을해야합니까? –

+0

그러면 구체적으로 보내려는 것이 무엇입니까? – tyczj

답변

10

이 코드는 내가 그것을 많은 다른 사람 :

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을 구현하는 방법을 잘 모르겠습니다. 도와 주셔서 감사합니다!! –