首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WearableListenerService不是在应用中创建的

WearableListenerService不是在应用中创建的
EN

Stack Overflow用户
提问于 2016-12-09 08:49:01
回答 1查看 183关注 0票数 0

我有一个服务来控制与应用程序的通信和应用程序磨损,但在这个服务中,它没有被创建,因为当我调试时,它从未进入方法,也没有与齿轮连接。

AndroidManifest

代码语言:javascript
复制
<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

代码语言:javascript
复制
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);
  }
 }
}
EN

回答 1

Stack Overflow用户

发布于 2016-12-10 21:33:00

您可能想要了解一下Sending and Receiving Messages,其中指出:

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

有关如何侦听重要事件的详细信息,请参阅Listen for Data Layer Events

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41051374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档