2016-12-09 3 views
0

앱 및 앱웨어와의 통신을 제어하는 ​​서비스가 하나 있지만 디버깅 할 때 메서드에 입력되지 않고 장비와 연결되지 않기 때문에이 서비스에서는 생성되지 않습니다.WearableListenerService가 앱에 생성되지 않았습니다.

AndroidManifest를

<service android:name=".ElUniversalWearService"> 
    <intent-filter> 
    <action android:name="com.google.android.gms.wearable.DATA_CHANGED" /> 
    <data android:scheme="wear" android:host="*" 
        android:path="/start-activity" /> 
    <action android:name="com.google.android.gms.wearable.MESSAGE_RECEIVED" /> 

</intent-filter> 

ElUniversalWearService

public class ElUniversalWearService extends WearableListenerService implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener{ 

    private GoogleApiClient googleApiClient=null; 
    private Node connectedNode=null; 

    @Override 
    public void onCreate() { 
    super.onCreate(); 
    googleApiClient = new GoogleApiClient.Builder(this) 
    .addApi(Wearable.API) 
    .build(); 
    googleApiClient.connect(); 
    } 

    @Override 
    public void onMessageReceived(MessageEvent messageEvent) { 
    super.onMessageReceived(messageEvent); 

    String message=messageEvent.getPath(); 

    if(message.equals(Operations.MESSAGE_INTERNET_VERIFY)){ 
     new InternetAsynkTask().execute(); 
    Log.d("[DEBUG-APP]", "Checa la conexión"); 
    } 
} 

@Override 
public void onDataChanged(DataEventBuffer dataEvents) { 
    Log.e("[DEBUG-APP]", "Lee la información enviada desde el wear"); 
    for (DataEvent event : dataEvents) { 
    String eventUri = event.getDataItem().getUri().toString(); 
    if (eventUri.contains(Operations.SECTION_REQUEST)) { 
     DataMapItem dataMapItem = DataMapItem.fromDataItem(event.getDataItem()); 
     String notesDataMaps = dataMapItem.getDataMap().getString(TagName.ARG_NAME_SECTION); 
     String urlNoteDataMaps = dataMapItem.getDataMap().getString(TagName.ARG_NAME_SECTION); 
     new SendDataNoteTask(googleApiClient).execute(urlNoteDataMaps); 
    } 
    } 
} 

public void sendMessageToWear(String message){ 
    new SendMessageTask(googleApiClient).execute(message); 
} 

@Override 
public void onConnected(@Nullable Bundle bundle) { 
    Log.e("[DEBUG-APP]", "Se ha conectado al wear"); 
} 

@Override 
public void onConnectionSuspended(int i) { 
    Log.e("[DEBUG-APP]", "Se ha suspendido el wear"); 
} 

@Override 
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { 
    Log.e("[DEBUG-APP]", "Se ha fallado al conectar al wear"); 
} 

private class InternetAsynkTask extends AsyncTask<Void,Void,Boolean>{ 

@Override 
protected Boolean doInBackground(Void... params) { 
    if(CheckNetworkConnection.isConnectionAvailable(getBaseContext())){ 
    return true; 
    }else{ 
    return false; 
    } 
} 

@Override 
protected void onPostExecute(Boolean aBoolean) { 
    if(aBoolean) 
     sendMessageToWear(Operations.MESSAGE_INTERNET_ENABLED); 
    else 
     sendMessageToWear(Operations.MESSAGE_INTERNET_DISABLED); 
    } 
} 
} 

답변

0

가 주목 한 항에있어서, 당신은 Sending and Receiving Messages을 통과 할 수 있습니다 :

당신이 서비스 일을 작성하는 경우 기능 변경을 감지하기 위해 WearableListenerService을 확장 할 경우 onConnectedNodes() 메서드를 재정의하여 세밀한 연결 정보를 수신 할 수 있습니다.

중요한 이벤트를 수신하는 방법에 대한 자세한 내용은 Listen for Data Layer Events을 참조하십시오.

관련 문제