片段中的FusedLocationApi MapView - addConnectionCallbacks,onConnectionSuspended

时间:2015-02-01 04:36:17

标签: android google-api-client fusedlocationproviderapi

我在片段中有一个MapView,我有两个问题似乎无法找到解决方案。我已经搜索了但我没有看到其他人遇到这些问题。作为参考,我主要关注开发者页面上的this教程。

这是我的片段:

public class MapFragment extends Fragment
        implements GooglePlayServicesClient.ConnectionCallbacks,
                   GooglePlayServicesClient.OnConnectionFailedListener,
                   LocationListener

第一个问题在这里:

 mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
            .addApi(LocationServices.API)
            .addConnectionCallbacks(this)  //problem!
            .addOnConnectionFailedListener(this) //problem!
            .build();

调用addConnectionCallbacks(this)会出错,说明无法将其应用于myPackageName.MapFragment。我知道你必须在这里传递一个GoogleApiClient.ConnectionCallbacks听众,但我看到的每个例子都使用this,我不确定该怎么做。同样的问题出现在addOnConnectionFailedListener中。在我的片段中,我已经实现了所有必要的方法,例如onLocationChanged()

第二个问题在这里:

@Override
public void onConnectionSuspended(int i)
{
    Log.i(TAG_MAP_FRAGMENT, "GoogleApiClient connection has been suspended");
}

这会显示错误消息:Method does not override method from its superclass。我已经搜索过,而且我还没能找到其他人解决这个问题。我不确定如何处理它。

任何人都知道如何解决这些问题?谢谢你的帮助!

1 个答案:

答案 0 :(得分:4)

而不是:

implements GooglePlayServicesClient.ConnectionCallbacks,
           GooglePlayServicesClient.OnConnectionFailedListener

尝试:

implements GoogleApiClient.ConnectionCallbacks,
           GoogleApiClient.OnConnectionFailedListener

这解决了上面最初发布的所有三个问题。 但是,现在方法onDisconnected()标有错误method does not override method from superclass

使用全部四个错误时修复错误:

implements GooglePlayServicesClient.ConnectionCallbacks,
           GooglePlayServicesClient.OnConnectionFailedListener,
           GoogleApiClient.ConnectionCallbacks,
           GoogleApiClient.OnConnectionFailedListener

这似乎并不理想,但至少目前是有效的。如果您偶然发现了这个并且您知道更好的解决方案,请留下回复。