Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Implementing google play services in android

Tags:

I am going along with the tutorial here, and am getting there error The method getIntentSender() is undefined for the type ConnectionResult in the onConnectionFailed class.

Full Code

package com.alfalfa.thisthat;  import android.app.Activity; import android.content.Intent; import android.content.IntentSender.SendIntentException; import android.os.Bundle; import android.view.Menu;  import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.api.GoogleApiClient; import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks; import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener; import com.google.android.gms.plus.Plus;  public class LoginActivity extends Activity implements ConnectionCallbacks, OnConnectionFailedListener {      /* Request code used to invoke sign in user interactions. */     private static final int RC_SIGN_IN = 0;      /* Client used to interact with Google APIs. */     private GoogleApiClient mGoogleApiClient;      /* A flag indicating that a PendingIntent is in progress and prevents      * us from starting further intents.      */     private boolean mIntentInProgress;      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         mGoogleApiClient = new GoogleApiClient.Builder(this)             .addConnectionCallbacks(this)             .addOnConnectionFailedListener(this)             .addApi(Plus.API, null)             .addScope(Plus.SCOPE_PLUS_LOGIN)             .build();     }      protected void onStart() {         super.onStart();         mGoogleApiClient.connect();     }      protected void onStop() {         super.onStop();          if (mGoogleApiClient.isConnected()) {             mGoogleApiClient.disconnect();         }     }      @Override     public boolean onCreateOptionsMenu(Menu menu) {         // Inflate the menu; this adds items to the action bar if it is present.         getMenuInflater().inflate(R.menu.main, menu);         return true;     }      @Override     public void onConnectionFailed(ConnectionResult result) {           if (!mIntentInProgress && result.hasResolution()) {             try {               mIntentInProgress = true;               startIntentSenderForResult(result.getIntentSender(),                   RC_SIGN_IN, null, 0, 0, 0);             } catch (SendIntentException e) {               // The intent was canceled before it was sent.  Return to the default               // state and attempt to connect to get an updated ConnectionResult.               mIntentInProgress = false;               mGoogleApiClient.connect();             }           }         }      @Override     public void onConnected(Bundle connectionHint) {         // We've resolved any connection errors.  mGoogleApiClient can be used to         // access Google APIs on behalf of the user.     }      @Override     public void onConnectionSuspended(int cause) {           mGoogleApiClient.connect();     }      protected void onActivityResult(int requestCode, int responseCode, Intent intent) {           if (requestCode == RC_SIGN_IN) {               mIntentInProgress = false;                  if (!mGoogleApiClient.isConnecting()) {                     mGoogleApiClient.connect();                 }           }     } } 

EDIT: LogCat

02-13 19:12:31.763: E/AndroidRuntime(21257): FATAL EXCEPTION: main 02-13 19:12:31.763: E/AndroidRuntime(21257): Process: com.alfalfa.thisthat, PID: 21257 02-13 19:12:31.763: E/AndroidRuntime(21257): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.alfalfa.thisthat/com.alfalfa.thisthat.MainActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.alfalfa.thisthat/com.alfalfa.thisthat.LoginActivity}; have you declared this activity in your AndroidManifest.xml? 02-13 19:12:31.763: E/AndroidRuntime(21257):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at android.app.ActivityThread.access$800(ActivityThread.java:135) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at android.os.Handler.dispatchMessage(Handler.java:102) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at android.os.Looper.loop(Looper.java:136) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at android.app.ActivityThread.main(ActivityThread.java:5017) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at java.lang.reflect.Method.invokeNative(Native Method) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at java.lang.reflect.Method.invoke(Method.java:515) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at dalvik.system.NativeStart.main(Native Method) 02-13 19:12:31.763: E/AndroidRuntime(21257): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.alfalfa.thisthat/com.alfalfa.thisthat.LoginActivity}; have you declared this activity in your AndroidManifest.xml? 02-13 19:12:31.763: E/AndroidRuntime(21257):    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1628) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at android.app.Activity.startActivityForResult(Activity.java:3424) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at android.app.Activity.startActivityForResult(Activity.java:3385) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at android.app.Activity.startActivity(Activity.java:3627) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at android.app.Activity.startActivity(Activity.java:3595) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at com.alfalfa.thisthat.MainActivity.onCreate(MainActivity.java:16) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at android.app.Activity.performCreate(Activity.java:5231) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 02-13 19:12:31.763: E/AndroidRuntime(21257):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 02-13 19:12:31.763: E/AndroidRuntime(21257):    ... 11 more 
like image 607
Eric Goncalves Avatar asked Feb 13 '14 23:02

Eric Goncalves


People also ask

How do I import Google Play Services?

To do this, select File > Import, and then select Android > Existing Android Code into Workspace, and browse to the google-play-services_lib project. After google-play-services_lib is successfully imported into your workspace, it needs to be marked as an Android library project.

Why Google Play Services is not supported by my device?

Go To Settings> Security > Device Administators> Disable Android Device manager. Now Go to Apps and Disable Google Play Services and Clear Its data, Clear Data of Play Store too. Reboot device andd Enable Google Play Services.

What is Google Play Services SDK?

Google Play services powers a broad set of SDKs on Android to help you build your app, enhance privacy and security, engage users, and grow your business. These SDKs are unique in that they only require a thin client library to be included in your app, as shown in figure 1.


1 Answers

As of today and Google Play SDK version 15, this has been replaced with

result.startResolutionForResult(this, // your activity                                 RC_SIGN_IN); 

as per the updated documentation.

like image 157
ianhanniballake Avatar answered Oct 12 '22 22:10

ianhanniballake