【问题标题】:WearableListenerService is not created in appWearableListenerService 未在应用程序中创建
【发布时间】:2016-12-09 00:49:00
【问题描述】:

我有一个服务来控制与应用程序和应用程序磨损的通信,但是在此服务中,它没有被创建,因为当我调试时,它永远不会进入方法并且它没有与齿轮连接。

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

【问题讨论】:

    标签: android android-service wear-os


    【解决方案1】:

    您可能想查看Sending and Receiving Messages,其中指出:

    如果您创建扩展 WearableListenerService 的服务以检测功能更改,您可能需要覆盖 onConnectedNodes() 方法以侦听更细粒度的连接详细信息。

    有关如何监听重要事件的更多信息,请参阅Listen for Data Layer Events

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-18
      • 1970-01-01
      • 2019-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-11
      相关资源
      最近更新 更多