GoogleApiClient.Builderをstaticで使用する方法を教えて下さい。
お世話になっております。
質問:GoogleApiClient.Builderをstaticで使用する方法を教えて下さい。
検索でよく見つかる方法で、下記のコードがあります。
locationClient = new GoogleApiClient.Builder(this)
.addApi(LocationServices.API) //利用するAPIの指定
.addConnectionCallbacks(this) //接続完了リスナ
.addOnConnectionFailedListener(this) //接続失敗リスナ
.build();
これを以下のstaticで使用する場合はどのようにすればよいのでしょうか?
protected static void connectGooglePlayServices() {
locationClient = new GoogleApiClient.Builder(this)
.addApi(LocationServices.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
if (REQUEST != null) {
// GoogleApiClient start
locationClient.connect();
}
}
以下の方法でできないかを試みているのですが思わしくありません。
変換出来ないのは理解できるのですが、どのようにすればの解答にたどり着けない状態です。
実現したのはPush通知をトリガーとしてGeofenceの更新を行おうことです。
周囲に相談できる人がおらず手探りで行っており、可能かどうかも自信がない状態です。
アドバイスいただければ幸いです。
ApplicationController
public class AApplicationController extends Application {
private static ApplicationController sInstance;
@Override
public void onCreate() {
super.onCreate();
sInstance = this;
}
public static synchronized ApplicationController getInstance() {
return sInstance;
}
}
MainActivity
protected static void connectGooglePlayServices() {
Context mcontext = ApplicationController.getInstance().getApplicationContext();
locationClient = new GoogleApiClient.Builder(mcontext)
.addApi(LocationServices.API)
.addConnectionCallbacks((GoogleApiClient.ConnectionCallbacks) mcontext)
.addOnConnectionFailedListener((GoogleApiClient.ConnectionCallbacks) mcontext)
.build();
if (REQUEST != null) {
// GoogleApiClient start
locationClient.connect();
}
}
エラー
01-07 14:59:31.856 5588-5588/com.testxxx E/AndroidRuntime: FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start receiver com.testxxx.GcmBroadcastReceiver: java.lang.ClassCastException: com.testxxx.ApplicationController cannot be cast to com.google.android.gms.common.api.GoogleApiClient$ConnectionCallbacks