如何解决Android Studio:Google 登录 Intent 的正确 mainfest 数据是什么?
我现在正在练习的是让用户登录他们的 Google 帐户,以便我可以访问成就和排行榜。
使用 Google 的说明,我想出了这个代码......
public class GmeAchvs extends Activity {
// Request code used to invoke sign in user interactions.
private static final int RC_SIGN_IN = 9001;
// Client used to sign in with Google Apis
private GoogleSignInClient mGoogleSignInClient;
public void preSets(){
// Configure sign-in to request the user's ID,email address,and basic
// profile. ID and basic profile are included in DEFAULT_SIGN_IN.
GoogleSignInoptions gso = new GoogleSignInoptions.Builder(GoogleSignInoptions.DEFAULT_SIGN_IN)
.requestemail()
.build();
mGoogleSignInClient = GoogleSignIn.getClient(this,gso);
}
public void signinCheck(){
GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
//updateUI(account);
}
private void signIn() {
Intent signInIntent = mGoogleSignInClient.getSignInIntent();
startActivityForResult(signInIntent,RC_SIGN_IN);
}
@Override
public void onActivityResult(int requestCode,int resultCode,Intent data) {
super.onActivityResult(requestCode,resultCode,data);
// Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
if (requestCode == RC_SIGN_IN) {
// The Task returned from this call is always completed,no need to attach
// a listener.
Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
handleSignInResult(task);
}
}
private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
try {
GoogleSignInAccount account = completedTask.getResult(ApiException.class);
// Signed in successfully,show authenticated UI.
//updateUI(account);
} catch (ApiException e) {
// The ApiException status code indicates the detailed failure reason.
// Please refer to the GoogleSignInStatusCodes class reference for more information.
Log.w("signInException","signInResult:Failed code=" + e.getStatusCode());
//updateUI(null);
}
}
public void signInSilently() {
Log.d("silentsignin","signInSilently()");
mGoogleSignInClient.silentSignIn().addOnCompleteListener(this,new OnCompleteListener<GoogleSignInAccount>() {
@Override
public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
if (task.isSuccessful()) {
Log.d("signinsuccess","signInSilently(): success");
//onConnected(task.getResult());
} else {
Log.d("signinFailed","signInSilently(): failure",task.getException());
//ondisconnected();
}
}
});
}
public void signOut() {
Log.d("signingout","signOut()");
mGoogleSignInClient.signOut().addOnCompleteListener(this,new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d("signoutsuccess","signOut(): success");
} else {
//handleException(task.getException(),"signOut() Failed!");
}
//ondisconnected();
}
});
}
}// end of class
如果我的研究正确,您必须在清单中声明所有活动...这让我想到了这篇文章的问题...
这种活动的操作和类别是什么?
<activity android:name=".GmeAchvs">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
我知道这不是 Main,我也不认为它应该是 LAUNCHER。 我什至需要那个小“。”在活动名称之前?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。