我有一个服务来控制与应用程序的通信和应用程序磨损,但在这个服务中,它没有被创建,因为当我调试时,它从未进入方法,也没有与齿轮连接。
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);
}
}
}发布于 2016-12-10 21:33:00
您可能想要了解一下Sending and Receiving Messages,其中指出:
如果创建扩展
WearableListenerService以检测功能更改的服务,则可能需要重写onConnectedNodes()方法以侦听更细粒度的连接详细信息。
有关如何侦听重要事件的详细信息,请参阅Listen for Data Layer Events。
https://stackoverflow.com/questions/41051374
复制相似问题