这是一个关于编程的后续问题...
Android Wear捆绑通知和背景图像
我想创建一个Android Wear GridViewPager布局,当新的推送通知到来时就会被创建。
以下是我的代码,它在新消息到来时初始化GoogleApiClient连接,以便我可以向穿戴应用程序发送数据,然后创建GridView Pager。
我的问题是GoogleApiClient从未连接。我已经成功运行了sdk文件夹中的SynchonizedNotifications示例应用程序,所以我知道我的设备和手表已正确配对。
以下是当前代码...
以下是我的代码,它在新消息到来时初始化GoogleApiClient连接,以便我可以向穿戴应用程序发送数据,然后创建GridView Pager。
我的问题是GoogleApiClient从未连接。我已经成功运行了sdk文件夹中的SynchonizedNotifications示例应用程序,所以我知道我的设备和手表已正确配对。
以下是当前代码...
public class GCMIntentService extends IntentService implements GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener{
@Override
protected void onHandleIntent(Context context, Intent intent) {
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Wearable.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
ConnectionResult connectionResult = mGoogleApiClient.blockingConnect(30, TimeUnit.SECONDS);
// Extract the payload from the message
Bundle extras = intent.getExtras();
if (this.mGoogleApiClient.isConnected()) {
// sending a simple message works
MessageApi.SendMessageResult result = Wearable.MessageApi.sendMessage(mGoogleApiClient,
node.getId(), "path", null).await();
PutDataMapRequest putDataMapRequest = PutDataMapRequest.create(Constants.BOTH_PATH);
putDataMapRequest.getDataMap().putString(Constants.KEY_CONTENT, "content");
putDataMapRequest.getDataMap().putString(Constants.KEY_TITLE, "title");
PutDataRequest request = putDataMapRequest.asPutDataRequest();
// push data to wear app here
Wearable.DataApi.putDataItem(mGoogleApiClient, request)
.setResultCallback(new ResultCallback<DataApi.DataItemResult>() {
@Override
public void onResult(DataApi.DataItemResult dataItemResult) {
if (!dataItemResult.getStatus().isSuccess()) {
Log.e(TAG, "Failed to set the data, status: " + dataItemResult.getStatus().getStatusCode());
}else{
// get here, but no message received from wear
Log.i(TAG,"SUCCESSFUL RESPONSE RECEIVED FROM WEAR");
}
mGoogleApiClient.disconnect();
}
});
} else {
Log.e(TAG, "no Google API Client connection");
}
}
}