从可穿戴侦听器服务访问GoogleApiClient实例失败

时间:2014-11-22 07:30:28

标签: android wear-os google-api-client

我想从WearableListenerService访问GoogleApiClient,我得到了NullPointerException

可穿戴式侦听器服务在后台运行并侦听磨损消息。在穿着消息接收时,该服务将例如呼叫web服务并使用GoogleApiClient异步发送响应。

我在Activity中尝试了相同的代码而没有错误。但我不想把这个后台服务放在一个活动中。

那么做这种简单沟通模式的最佳方法是什么?

这是我的代码:

public class WearMessageListenerService extends WearableListenerService {

    private GoogleApiClient client;
    private String nodeId;

    public WearMessageListenerService(){

        client = getGoogleApiClient(this);
    }

    private GoogleApiClient getGoogleApiClient(Context context) {

        return new GoogleApiClient.Builder(context).addApi(Wearable.API).build();
    }

    @Override
    public void onMessageReceived(MessageEvent messageEvent) { //...}
}

3 个答案:

答案 0 :(得分:1)

尝试将其移至service onCreate。此示例适用于我的服务

 @Override
public void onCreate() {

    super.onCreate();
    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addApi(Wearable.API)
            .build();
    mGoogleApiClient.connect();

}

答案 1 :(得分:0)

我同意最后的回答,或者另一种方式是:

您可以在OnDataChangedMethod中关联google api客户端,使用googleapiclient.blockConnect

答案 2 :(得分:0)

我这样做

@Override
public void onCreate() {

    super.onCreate();
    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addApi(Wearable.API)
            .build();
    mGoogleApiClient.connect();

}

但是当得到 onStartCommand 时 mGoogleApiClient未连接