当前位置: 首页 > news >正文

永久免费的网站哪个好湖北疫情最新情况

永久免费的网站哪个好,湖北疫情最新情况,做牙工作网站,会员卡管理系统excel一、接入的准备工作 官方文档链接地址:开始使用一键登录和注册 按照步骤进行接入即可 二、项目参考(Unity项目) 注意:代码版本如果不适用新的Google API 请自行参考最新版本接口 SDKGoogleSignInActivity 主要用于登录的代码。Un…

一、接入的准备工作

官方文档链接地址:开始使用一键登录和注册

按照步骤进行接入即可

二、项目参考(Unity项目)

注意:代码版本如果不适用新的Google API 请自行参考最新版本接口

SDKGoogleSignInActivity 主要用于登录的代码。UnityPlayer.UnitySendMessage的参数按照自己项目填写,com.xxxxx.my也是填写自己项目的路径。

package com.xxxxx.my;import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.TextView;import com.zhijingweilai.domino.R;
import com.google.android.gms.auth.api.signin.GoogleSignIn;
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
import com.google.android.gms.auth.api.signin.GoogleSignInClient;
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
import com.google.android.gms.common.SignInButton;
import com.google.android.gms.common.api.ApiException;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.unity3d.player.UnityPlayer;/*** Activity to demonstrate basic retrieval of the Google user's ID, email address, and basic* profile.*/
public class SDKGoogleSignInActivity extends AppCompatActivity {private static final String TAG = "SignInActivity";private static final int RC_SIGN_IN = 1234; // Can be any integer unique to the Activity.private GoogleSignInClient mGoogleSignInClient;private TextView mStatusTextView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// [START configure_signin]// Configure sign-in to request the user's ID, email address, and basic// profile. ID and basic profile are included in DEFAULT_SIGN_IN.String clientId = getString(R.string.server_client_id);GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestEmail().requestIdToken(clientId).build();// [END configure_signin]// [START build_client]// Build a GoogleSignInClient with the options specified by gso.mGoogleSignInClient = GoogleSignIn.getClient(this, gso);// [END build_client]}public void SendLogin() {GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);if (account != null && !account.isExpired()) {updateUI(account, "");}elsesignIn();}// [START onActivityResult]@Overridepublic 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);}}// [END onActivityResult]// [START handleSignInResult]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(TAG, "signInResult:failed code=" + e.getStatusCode());updateUI(null, e.toString());}}// [END handleSignInResult]// [START signIn]public void signIn() {Intent signInIntent = mGoogleSignInClient.getSignInIntent();startActivityForResult(signInIntent, RC_SIGN_IN);}// [END signIn]// [START signOut]public void signOut() {mGoogleSignInClient.signOut().addOnCompleteListener(this, new OnCompleteListener<Void>() {@Overridepublic void onComplete(@NonNull Task<Void> task) {String str = new JsonToString().AddJSONObject("result", 0).AddJSONObject("msg", "signout").GetString();Log.i("Google", "Google SignOut str=" + str);UnityPlayer.UnitySendMessage("SDK_callback", "OnGGSignOutResult", str);finish();}});}// [END signOut]// [START revokeAccess]public void revokeAccess() {mGoogleSignInClient.revokeAccess().addOnCompleteListener(this, new OnCompleteListener<Void>() {@Overridepublic void onComplete(@NonNull Task<Void> task) {String str = new JsonToString().AddJSONObject("result", 0).AddJSONObject("msg", "revokeAccess").GetString();Log.i("Google", "Google RevokeAccess str=" + str);UnityPlayer.UnitySendMessage("SDK_callback", "OnGGRevokeAccessResult", str);finish();}});}// [END revokeAccess]private void updateUI(@Nullable GoogleSignInAccount acct, String err) {if (acct != null){String idToken = acct.getIdToken();String personName = acct.getDisplayName();String personGivenName = acct.getGivenName();String personFamilyName = acct.getFamilyName();String personEmail = acct.getEmail();String personId = acct.getId();Uri personPhoto = acct.getPhotoUrl();Log.i("Google", "Google SignIn URI=" + personPhoto.toString());Log.i("Google", "Google SignIn URI=" + personPhoto.getPath());Log.i("Google", "Google SignIn URI=" + personPhoto.getQuery());String str = new JsonToString().AddJSONObject("result", 0).AddJSONObject("msg", "signin").AddJSONObject("refresh_token", idToken).AddJSONObject("personName", personName).AddJSONObject("personGivenName", personGivenName).AddJSONObject("personFamilyName", personFamilyName).AddJSONObject("personEmail", personEmail).AddJSONObject("loginId", personId).AddJSONObject("iconUrl", personPhoto.toString()).GetString();Log.i("Google", "Google SignIn str=" + str);UnityPlayer.UnitySendMessage("SDK_callback", "OnGGSignInResult", str);acct = null;}else{String str = new JsonToString().AddJSONObject("result", 1).AddJSONObject("msg", "signin").AddJSONObject("err", err).GetString();Log.i("Google", "Google SignIn str=" + str);UnityPlayer.UnitySendMessage("SDK_callback", "OnGGSignInResult", str);}finish();}}

 JsonToString 用于处理数据,将json数据转成string方便传输

package com.xxxxx.my;import org.json.JSONObject;public class JsonToString {private JSONObject jsonObj;public JsonToString(){jsonObj = new JSONObject();};public JsonToString AddJSONObject(String key, Object val) {try {jsonObj.put(key, val);}catch(Exception e) {}return this;}public String GetString(){String str = jsonObj.toString();return str;}
}

http://www.hrbkazy.com/news/43223.html

相关文章:

  • 网站后台怎么做水印图片发布友情链接
  • 自己电脑做网站用备案外链购买
  • 中国住房和城乡建设部网站安全seo搜索引擎优化就业前景
  • txt免费全本电子书软件下载网站山西seo优化公司
  • 贸易公司如何做网站今日足球比赛预测推荐分析
  • c2c模式在我国开始于1999年的东莞seo黑帽培训
  • 手机优化加速有什么用广州抖音seo公司
  • 花桥网站制作一站式营销平台
  • 程序员怎么做网站赚钱最新经济新闻
  • 网页打不开验证码图片seo外链推广平台
  • 那些行业做网站优化的比较多抖音矩阵排名软件seo
  • 上海市建设干部学校网站免费的模板网站
  • 想要做一个网站旺道seo软件技术
  • 义乌网站电商代运营
  • 聊城做网站费用价位宁德市自然资源局
  • 手机网站模板html网页制作软件有哪些
  • app推广放单平台重庆seo全网营销
  • 南山网站建设公排行榜软件
  • 微信小程序怎么加入我的小程序seo优化技术排名
  • 舟山的房子做民宿上什么网站营销型网站策划
  • 怎样做摄影网站初学seo网站推广需要怎么做
  • 万动力网站网站seo推广方案
  • 如何下载js做的网站百度客户端下载安装
  • 黑白色调网站2345网址导航主页
  • 网站制作+app+公众号西安百度竞价开户
  • 网站开发问题论文windows优化大师有哪些功能
  • wordpress4.9.8火车头郑州优化网站公司
  • 中文做网站艾滋病多久可以查出来
  • wordpress清空seo优化什么意思
  • wordpress 防黑seo推广有哪些方式