Android 消息可以';从Wear向手机发送信息时无法接收

Android 消息可以';从Wear向手机发送信息时无法接收,android,wear-os,Android,Wear Os,我想从我的wear向我的android手机发送一条消息,在wear中,“SendMessageResult”是成功的,但它不会触发我手机上的“showToast”方法,有人能帮我理解我做错了什么吗 这是我的服装清单 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.user

我想从我的wear向我的android手机发送一条消息,在wear中,“SendMessageResult”是成功的,但它不会触发我手机上的“showToast”方法,有人能帮我理解我做错了什么吗

这是我的服装清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.user.wear2">

<uses-feature android:name="android.hardware.type.watch" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@android:style/Theme.DeviceDefault">
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
<meta-data android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />

</manifest>
Mobile的MainActivity.java

package com.example.user.wear2;

import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.wearable.Wearable;

public class MainActivity extends AppCompatActivity  implements    GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener{
private GoogleApiClient mGoogleApiClient;
private static final String TAG = MainActivity.class.getSimpleName();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addApi(Wearable.API)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .build();
    mGoogleApiClient.connect();
}
@Override
public void onConnected(@Nullable Bundle bundle) {
    Log.d(TAG,"onConnected");
}

@Override
public void onConnectionSuspended(int i) {
    Log.d(TAG,"onConnectionSuspended");
}

@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
    Log.d(TAG,"onConnectionFailed");
}
}
这是Lissword.java我的可穿戴ListenerServiceIn手机

package com.example.user.wear2;

import android.util.Log;
import android.widget.Toast;

import com.google.android.gms.wearable.MessageEvent;
import com.google.android.gms.wearable.WearableListenerService;

public class Lisswear extends WearableListenerService {
@Override
public void onMessageReceived(MessageEvent messageEvent) {
    //if(messageEvent.getPath().equals("/showToast")) {
    showToast(messageEvent.getPath());
    //}
}


private void showToast(String message) {
    Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}
}

以下是您可以尝试的内容:

  • 确保两台设备的应用程序ID与本例相同
  • 确保您有相同的包名
  • 确保你有 您还可以在文档中阅读更多关于可穿戴设备的信息

  • 猜测一下,您可能将消息发送到了错误的节点,即,不是手持设备。在磨损活动中使用功能API而不是节点API来查找要发送到的节点。另外,不要仅仅依赖于祝酒,通过各种方法进行调试,您将获得更详细的信息。
    package com.example.user.wear2;
    
    import android.content.Intent;
    import android.support.annotation.NonNull;
    import android.support.annotation.Nullable;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    
    import com.google.android.gms.common.ConnectionResult;
    import com.google.android.gms.common.api.GoogleApiClient;
    import com.google.android.gms.wearable.Wearable;
    
    public class MainActivity extends AppCompatActivity  implements    GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener{
    private GoogleApiClient mGoogleApiClient;
    private static final String TAG = MainActivity.class.getSimpleName();
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addApi(Wearable.API)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .build();
        mGoogleApiClient.connect();
    }
    @Override
    public void onConnected(@Nullable Bundle bundle) {
        Log.d(TAG,"onConnected");
    }
    
    @Override
    public void onConnectionSuspended(int i) {
        Log.d(TAG,"onConnectionSuspended");
    }
    
    @Override
    public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
        Log.d(TAG,"onConnectionFailed");
    }
    }
    
    package com.example.user.wear2;
    
    import android.util.Log;
    import android.widget.Toast;
    
    import com.google.android.gms.wearable.MessageEvent;
    import com.google.android.gms.wearable.WearableListenerService;
    
    public class Lisswear extends WearableListenerService {
    @Override
    public void onMessageReceived(MessageEvent messageEvent) {
        //if(messageEvent.getPath().equals("/showToast")) {
        showToast(messageEvent.getPath());
        //}
    }
    
    
    private void showToast(String message) {
        Toast.makeText(this, message, Toast.LENGTH_LONG).show();
    }
    }