Android- Integrating Google Sign In ->status{statuscode=developer_error, resolution=null} -


i trying couple of days, still not able find solution. in end, used code here https://github.com/googlesamples/google-services.

@override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_login);        mstatustextview = (textview) findviewbyid(r.id.status);      // button listeners      findviewbyid(r.id.sign_in_button).setonclicklistener(this);     findviewbyid(r.id.sign_out_button).setonclicklistener(this);     findviewbyid(r.id.disconnect_button).setonclicklistener(this);      // [start configure_signin]     // configure sign-in request user's id, email address, , basic     // profile. id , basic profile included in default_sign_in.     googlesigninoptions gso = new googlesigninoptions.builder(googlesigninoptions.default_sign_in)             .requestemail()             .build();     // [end configure_signin]        // [start build_client]     // build googleapiclient access google sign-in api ,     // options specified gso.     mgoogleapiclient = new googleapiclient.builder(this)             .enableautomanage(this /* fragmentactivity */, /* onconnectionfailedlistener */)             .addapi(auth.google_sign_in_api, gso)             .build();     // [end build_client]      // [start customize_button]     // customize sign-in button. sign-in button can displayed in     // multiple sizes , color schemes. can contextually     // rendered based on requested scopes. example. red button may     // displayed when google+ scopes requested, white button     // may displayed when basic profile requested. try adding     // scopes.plus_login scope googlesigninoptions see     // difference.     signinbutton signinbutton = (signinbutton) findviewbyid(r.id.sign_in_button);     signinbutton.setsize(signinbutton.size_standard);     signinbutton.setscopes(gso.getscopearray());     // [end customize_button]         mnotificationmanager = (notificationmanager) this.getapplicationcontext().getsystemservice(this.notification_service);      typeface mytypeface = typeface.createfromasset(getassets(), "big daddy st.ttf");     typeface mytypefacefacebook = typeface.createfromasset(getassets(), "big daddy st.ttf");       mainimage = (imageview) findviewbyid(r.id.imageview1);      textview textview1 = (textview) findviewbyid(r.id.textview1);     textview1.setonclicklistener(this);     textview1.settypeface(mytypeface);      button button = (button) findviewbyid(r.id.btn_login_facebook);     button.setonclicklistener(this);     button.settypeface(mytypefacefacebook);  }    @override public void onstart() {     super.onstart();      optionalpendingresult<googlesigninresult> opr = auth.googlesigninapi.silentsignin(mgoogleapiclient);     if (opr.isdone()) {         // if user's cached credentials valid, optionalpendingresult "done"         // , googlesigninresult available instantly.         log.d(tag, "got cached sign-in");         googlesigninresult result = opr.get();         handlesigninresult(result);     } else {         // if user has not signed in on device or sign-in has expired,         // asynchronous branch attempt sign in user silently.  cross-device         // single sign-on occur in branch.         showprogressdialog();         opr.setresultcallback(new resultcallback<googlesigninresult>() {             @override             public void onresult(googlesigninresult googlesigninresult) {                 hideprogressdialog();                 handlesigninresult(googlesigninresult);             }         });     } } // [start onactivityresult] @override public void onactivityresult(int requestcode, int resultcode, intent data) {     super.onactivityresult(requestcode, resultcode, data);      // result returned launching intent googlesigninapi.getsigninintent(...);     if (requestcode == rc_sign_in) {         googlesigninresult result = auth.googlesigninapi.getsigninresultfromintent(data);         handlesigninresult(result);     } } // [end onactivityresult]   // [start handlesigninresult] private void handlesigninresult(googlesigninresult result) {     log.d(tag, "handlesigninresult:" + result.issuccess());     if (result.issuccess()) {         // signed in successfully, show authenticated ui.         googlesigninaccount acct = result.getsigninaccount();         mstatustextview.settext(getstring(r.string.signed_in_fmt, acct.getdisplayname()));         updateui(true);     } else {         // signed out, show unauthenticated ui.         updateui(false);     } } // [end handlesigninresult] // [start signin] private void signin() {     intent signinintent = auth.googlesigninapi.getsigninintent(mgoogleapiclient);     startactivityforresult(signinintent, rc_sign_in); } // [end signin] // [start signout] private void signout() {     auth.googlesigninapi.signout(mgoogleapiclient).setresultcallback(             new resultcallback<status>() {                 @override                 public void onresult(status status) {                     // [start_exclude]                     updateui(false);                     // [end_exclude]                 }             }); } // [end signout]   // [start revokeaccess] private void revokeaccess() {     auth.googlesigninapi.revokeaccess(mgoogleapiclient).setresultcallback(             new resultcallback<status>() {                 @override                 public void onresult(status status) {                     // [start_exclude]                     updateui(false);                     // [end_exclude]                 }             }); } // [end revokeaccess]  private void showprogressdialog() {     if (mprogressdialog == null) {         mprogressdialog = new progressdialog(this);         mprogressdialog.setmessage(getstring(r.string.loading));         mprogressdialog.setindeterminate(true);     }      mprogressdialog.show(); } private void hideprogressdialog() {     if (mprogressdialog != null && mprogressdialog.isshowing()) {         mprogressdialog.hide();     } } private void updateui(boolean signedin) {     if (signedin) {         findviewbyid(r.id.sign_in_button).setvisibility(view.gone);        // findviewbyid(r.id.sign_out_and_disconnect).setvisibility(view.visible);     } else {         mstatustextview.settext(r.string.signed_out);          findviewbyid(r.id.sign_in_button).setvisibility(view.visible);        // findviewbyid(r.id.sign_out_and_disconnect).setvisibility(view.gone);     } }  @override public void onclick(view view) {   //        intent signupintent = new intent(this,signupscreen.class); //       startactivity(signupintent);      if(view.getid() == r.id.textview1){         intent signupintent = new intent(this, signupscreen.class);         startactivity(signupintent);      }     // testing google sign in     if(view.getid() == r.id.btn_login_facebook){         intent intent = new intent(this, testgooglesignin.class);          //notification         // notificationwithbutton();         startactivity(intent);     }     if(view.getid()==r.id.sign_in_button){       //  toast.maketext(this, "start sign process", toast.length_short).show();         signin();       }  }    void notificationwithbutton(){     if (android.os.build.version.sdk_int >= build.version_codes.jelly_bean) {         // prepare intent triggered if  notification button pressed         intent intent = new intent(this, mainactivity.class);         pendingintent pintent = pendingintent.getactivity(this, 0, intent, 0);          // building notifcation         notificationcompat.builder nbuilder = (notificationcompat.builder) new notificationcompat.builder(this)                 .setsmallicon(r.mipmap.ic_launcher) // notification icon                 .setcontenttitle("button notification") // notification title                 .setcontenttext("expand show buttons...") // content text                 .setticker("showing button notification") // status bar message                 .addaction(r.drawable.common_google_signin_btn_icon_dark, "accept", pintent) // accept notification button                 .addaction(r.drawable.common_google_signin_btn_icon_dark_normal, "cancel", pintent); // cancel notification button          mnotificationmanager.notify(1001, nbuilder.build());      } else {         toast.maketext(this, "you need higher version", toast.length_long).show();     } }   @override public void onconnectionfailed(@nonnull connectionresult connectionresult) {  } 

this manifest file (meta-tags)

 <meta-data         android:name="com.google.android.geo.api_key"         android:value="@string/google_maps_key" />     <meta-data         android:name="com.google.android.gms.version"         android:value="@integer/google_play_services_version" /> 

i included key google maps, shows in structure

enter image description here

when sign in, nothing happens. result null.

i trying authenticate user login via gmail application

do need create key gmail login? well, created on credentials page, using same sha-1 (debug), use key?

i followed google sign in error status{statuscode=developer_error, resolution=null} there no mismatch.

your appreciated.


Comments

Popular posts from this blog

php - How to display all orders for a single product showing the most recent first? Woocommerce -

asp.net - How to correctly use QUERY_STRING in ISAPI rewrite? -

angularjs - How restrict admin panel using in backend laravel and admin panel on angular? -