下面的google api调用不会产生任何回调。只有警告“FragmentActivity:活动结果为未知碎片传递。”
mClient = new GoogleApiClient.Builder(this)
.addApi(Fitness.SENSORS_API)
.addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE))
.addConnectionCallbacks(
new GoogleApiClient.ConnectionCallbacks() {
@Override
public void onConnected(Bundle bundle) {
Log.i(TAG, "Connected!!!");
// Now you can make calls to the Fitness APIs.
findFitnessDataSources();
}
@Override
public void onConnectionSuspended(int i) {
// If your connection to the sensor gets lost at some point,
// you'll be able to determine the reason and react to it here.
if (i == GoogleApiClient.ConnectionCallbacks.CAUSE_NETWORK_LOST) {
Log.i(TAG, "Connection lost. Cause: Network Lost.");
} else if (i
== GoogleApiClient.ConnectionCallbacks.CAUSE_SERVICE_DISCONNECTED) {
Log.i(TAG,
"Connection lost. Reason: Service Disconnected");
}
}
}
)
.enableAutoManage(this, 0, new GoogleApiClient.OnConnectionFailedListener() {
@Override
public void onConnectionFailed(ConnectionResult result) {
Log.i(TAG, "Google Play services connection failed. Cause: " +
result.toString());
}
})
.build();
mClient.connect();
答案 0 :(得分:2)
我不确定这是否是OP的问题,但是如果其他人遇到上述警告,请检查您在片段中 之前的任何startActivityForResult调用。在我的例子中,我将这些调用从活动移动到片段,然后将它们保留原样。但是,当从片段内部制作时,您需要首先调用getActivity(),如:
getActivity().startActivityForResult(intent, RESPONSE_CODE);
如果不这样做会导致“为未知碎片传递活动结果”错误,并且没有响应被传递给要处理的活动。
答案 1 :(得分:0)
如果使用高于此值的任何内容,请尝试将支持库降级为23.1.0。
答案 2 :(得分:0)
经过多次努力后得到了解决这个问题的方法。新的API已发布,此问题已在其中得到解决。所以只需使用:
更新build.gradle文件编译com.google.android.gms:play-services-fitness:10.0.0'