2017-11-10 1 views
0

나는 시계에서 센서 데이터를 가져 오기 위해 앱을 개발 중입니다. 전화를 사용하여 수집을 시작하지만 시계와 전화가 완벽하게 연결되어있는 것처럼 보이지만 '수집 시작'명령을 보내면 아무 일도 일어나지 않습니다. 시계를 다시 시작해야 명령을 받아 들일 수 있습니다.Android 마모가 수신되지 않는 경우가 있습니다.

if (mGoogleApiClient != null && mGoogleApiClient.isConnected()) { 

     final PutDataMapRequest putDataMapReq = PutDataMapRequest.create("/toWear"); 
     putDataMapReq.getDataMap().putInt("duration", duration); // Duration of data, selected in TimeSelector 
     putDataMapReq.getDataMap().putString("type", type); 
     putDataMapReq.getDataMap().putString("name", name); 
     putDataMapReq.getDataMap().putString("Starting Time", startingTime); // Starting Time of data 
     putDataMapReq.getDataMap().putBoolean("Stop", false); //Stop is set True when Phone has to stop watch from taking data 
     putDataMapReq.setUrgent(); 
     PutDataRequest request = putDataMapReq.asPutDataRequest(); 
     Wearable.DataApi.putDataItem(mGoogleApiClient, request).setResultCallback(new ResultCallback<DataApi.DataItemResult>() { 
      @Override 
      public void onResult(DataApi.DataItemResult dataItemResult) { 
      } 
     }); 

    } 
    else 
    { 
     Toast.makeText(context, "Not Connected properly", Toast.LENGTH_LONG).show(); 

    } 

이 난 방법입니다

mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .addApi(Wearable.API) 
      .addConnectionCallbacks(MainActivity.this) 
      .addOnConnectionFailedListener(this) 
      .build(); 
    mGoogleApiClient.connect(); 

이 내가 휴대 전화에서 데이터를 전송하고 있습니다 방법입니다 : 내가 전화에서 연결을 짓고 있어요 방법

입니다 스마트 시계의 데이터를 수락 :

알고 싶습니다. 적절한 연결에도 불구하고 왜 그런지 알고 싶습니다. 설정이 완료되면 스마트 폰이 전화로 데이터를 수신하지 못합니다.

답변

0

Android Wear Data API는 데이터 전송을 100 % 보장합니다. 두 데이터가 같으면 화면의 아무 것도 업데이트하지 않으므로 데이터가 전송되지 않습니다. 데이터가 동일한 지 확인하십시오.

+0

감사합니다. 데이터는 동일하지 않습니다. 10 초 동안 3 개의 센서에서 얻은 데이터를 전송합니다. 100hz의 샘플링 주파수. – DivisionSi

+0

세 개의 데이터를 전송한다고 가정합니다. 마지막으로 보낸 데이터가 누락되었거나 중간 또는 처음 데이터가 있습니까? 중간에있는 데이터가 누락 된 경우 다음 값으로 업데이트 될 수 있습니다. 예를 들어, 값이 "10"이고 유형이 10 ​​초인 경우, 값이 "15"인 다른 데이터를 보내면 최근 값만 마모 상태로 전송됩니다 . 왜냐하면 데이터는 생성되는 즉시 전송되지 않기 때문입니다. Android는 대기열에 넣고 처리합니다. 중간 또는 마지막 데이터가 손실되었는지 여부를 한번 확인할 수 있습니까? –

+0

3 개의 데이터가 전송된다고 가정합니다. 이것은 일어나는 일이며, 20 %의 경우 모두 3 명이 보내집니다. 나머지 80 %의 경우에는 결국 데이터가 누락됩니다. 예를 들어, 3 번째를 얻지 못하거나 2 번째를 얻지 못하면 3 차도 놓칠 수 있습니다. 내가 1 개의 데이터를 놓치 자마자 그 뒤의 데이터도 손실됩니다. – DivisionSi

관련 문제