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

生鲜网站建设背景免费查企业app排行榜

生鲜网站建设背景,免费查企业app排行榜,西安官网优化技术,微信网站上传图片技术文章 来源#xff1a;码农网 发布#xff1a;2016-09-19 浏览#xff1a;194 摘要#xff1a;今天#xff0c;几乎所有的web和移动app都自带谷歌和Facebook登录#xff0c;这对app开发者和用户来说是一个非常有用的功能#xff0c;因为几乎每个人都有一个谷歌/ Gmai…技术文章 来源码农网 发布2016-09-19 浏览194 摘要今天几乎所有的web和移动app都自带谷歌和Facebook登录这对app开发者和用户来说是一个非常有用的功能因为几乎每个人都有一个谷歌/ Gmail和Facebook帐户此外在用谷歌登录的时候你不需要记住你的用户ID和密码。 今天几乎所有的web和移动app都自带谷歌和Facebook登录这对app开发者和用户来说是一个非常有用的功能因为几乎每个人都有一个谷歌/ Gmail和Facebook帐户此外在用谷歌登录的时候你不需要记住你的用户ID和密码。 准备工作 安装Android Studio到PCUnix或Windows上。了解如何安装可以点击这里。一个实时的Android设备智能手机或平板配置有Android Studio。一 个兼容的Android设备运行Android 2.3或更新版本并且包含Google Play Store或一个有可运行基于Android 4.2.2或更新版本Google APIs 平台的模拟器以及具备Google Play Services 8.3.0或更新版本。最新版本的Android SDK包括SDK工具组件。项目必须配置可进行编译的Android 2.3Gingerbread或更高版本。安装/更新Google Play Services 将软件包下载到你的计算机并安装到SDK环境android-sdk-folder/extras/google/google_play_services。 为了更新/安装Google Play Services SDK 在Android Studio中选择Tools Android SDK Manager。滚动到软件包列表的底部选择Extras Google Play services。获取配置文件 配置文件可为你的app提供特定的服务信息。转到谷歌开发者页面。为此你必须为你的app选择现有项目或创建一个新的项目。你还需要为你的app提供软件包名称。 1、在Android Studio Project中创建一个新项目。将项目命名为GLogin并给它一个软件包的名称。选择活动名称为LoginActivity。 2、现在添加app名称和软件包名称到谷歌开发者页面如下图所示。 3、点击Choose and configure services按钮。 4、选择Google Sign-In服务页面。 我们还将继续在此页面上工作但首先我们必须生成数字签名的公共证书。 生成SHA-1指纹 为了使用谷歌plus服务首先我们需要启用在谷歌控制台上的Google Plus API并且我们需要在Google APIs Console中注册数字签名的.apk文件的公开证书。Java的关键工具用来生成SHA-1指纹。 1.打开你的终端并执行以下命令来生成SHA-1指纹。如果要求输入密码输入android然后按回车键。 在Windows keytool -list -v -keystore %USERPROFILE%\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android 在Linux或Mac OS keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android 2.如下图复制在终端生成的SHA-1 ID 3.输入SHA-1 ID到谷歌开发者页面 4.点击ENABLE SIGN IN按钮 5.单击CONTINUE TO GENERATE CONFIGURATION FILE按钮 6.这将打开下载和安装配置页面点击下载google-services.json按钮 7.复制你刚刚下载的google-services.json文件到ndroid Studio项目的app/或mobile/ 目录下。如图所示 添加功能 1.添加依赖你的项目级build.gradle build.gradle classpath com.google.gms:google-services:1.5.0-beta2 build.gradle 2.添加插件到你的app级build.gradle apply plugin: com.google.gms.google-services 3.通过点击如下所示的按钮做gradle-sync。 1.创建一个布局文件fragment_gplus.xml放置以下代码。 fragment_gplus.xml LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/android xmlns:toolshttp://schemas.android.com/tools android:idid/main_layout android:layout_widthmatch_parent android:layout_heightmatch_parent android:orientationvertical android:weightSum4 LinearLayout android:layout_widthmatch_parent android:layout_height0dp android:layout_weight2 android:gravitycenter_horizontal android:orientationvertical ImageView android:idid/img_profile_pic android:layout_width100dp android:layout_height100dp android:layout_marginBottom10dp android:layout_marginTopdimen/g_top_margin android:contentDescriptionstring/desc_google_icon android:srcdrawable/user_defaolt / TextView android:idid/status android:layout_widthwrap_content android:layout_heightwrap_content android:textstring/signed_out android:textColorandroid:color/black android:textSize14sp / /LinearLayout RelativeLayout android:layout_widthfill_parent android:layout_height0dp android:layout_weight2 com.google.android.gms.common.SignInButton android:idid/sign_in_button android:layout_widthmatch_parent android:layout_heightwrap_content android:visibilityvisible tools:visibilitygone / Button android:idid/sign_out_button android:layout_widthmatch_parent android:layout_heightwrap_content android:textstring/sign_out android:themestyle/ThemeOverlay.MyDarkButton android:visibilityvisible tools:visibilitygone/ /RelativeLayout /LinearLayout 上 面的布局包括在LinearLayourt内的LinearLayout和RelativeLayout。LinearLayout包含 ImageView显示头像图片以及TextView显示注册的状态当用户注册了之后个人资料图片就会显示在ImageView并且用户的名字会显 示于TextView。当用户退出系统的时候个人资料图片改变成默认图片状态显示为退出。RelativeLayout包括 com.google.android.gms.common.SignInButton由谷歌提供的作为api一部分的自定义按钮部件和一个正常 signout按钮。这两个按钮的可见性基于用户的当前状态而决定。 2.创建一个新片段GPlusFragment.java并执行以下步骤。 3.配置 Google Sign-In和GoogleApiClient对象 从这个链接 GPlusFragment.java获取GPlusFragment.java的完整代码 1. 在登录片段的onCreate()方法配置Google Sign-In以便于请求app所需的用户数据。例如要配置Google Sign-In来请求用户ID和基本的个人资料信息用DEFAULT_SIGN_IN参数创建一个GoogleSignInOptions对象。要请求 用户的电子邮件地址用requestEmail 选项创建GoogleSignInOptions对象。 GPlusFragment.java GoogleSignInOptions gso new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestEmail().build(); 2.然后在登录片段的onCreate()方法中创建一个GoogleApiClient对象以便于访问Google Sign-In API和你指定的选项 mGoogleApiClient new GoogleApiClient.Builder(getActivity()).enableAutoManage(getActivity() /* FragmentActivity */, this /* OnConnectionFailedListener */) .addApi(Auth.GOOGLE_SIGN_IN_API,gso) .build(); 在onCreateView()方法中注册按钮的OnClickListener()以便于单击时用户登录 signInButton.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) { Intent signInIntent Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); startActivityForResult(signInIntent, RC_SIGN_IN); } }); 上 面的代码创建了一个signInIntent和onClick()方法通过用getSignInIntent()方法创建登录意图来处理sign-in 按钮的轻击并用startActivityForResult启动意图。第二个参数唯一地标识了你的请求。回调提供相同请求的代码这样就可以决定如何 处理结果。启动意图提示用户选择谷歌帐户登录。如果你要求的范围超出了个人资料电子邮件和ID那么用户会被提示授权访问所请求的资源。 4.同样为signOut按钮添加OnClickListener()。 signOutButton.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) { Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback( new ResultCallbackStatus() { Override public void onResult(Status status) { updateUI(false); } }); } }); 在上面的代码片段中我们为退出按钮添加了点击监听器它调用google api的signOut()方法。回调调用onResult()方法同时用fause参数调用updateUI()。讨论updateUI()方法。 5.在GPlusFragment.java文件中添加下面的辅助方法代码。 private void updateUI(boolean signedIn) { if (signedIn) { signInButton.setVisibility(View.GONE); signOutButton.setVisibility(View.VISIBLE); } else { mStatusTextView.setText(R.string.signed_out); Bitmap icon BitmapFactory.decodeResource(getContext().getResources(),R.drawable.user_defaolt); imgProfilePic.setImageBitmap(ImageHelper.getRoundedCornerBitmap(getContext(),icon, 200, 200, 200, false, false, false, false)); signInButton.setVisibility(View.VISIBLE); signOutButton.setVisibility(View.GONE); } } 如果这个方法接收signedIn参数为true那么signInButton 的可见性为GONE 并将signOutButton 设置为VISIBLE 6.在emonActivityResult()方法中我们用getSignInResultFromIntent()获取登录结果。下面是执行。 Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...); if (requestCode RC_SIGN_IN) { GoogleSignInResult result Auth.GoogleSignInApi.getSignInResultFromIntent(data); handleSignInResult(result); } } 如果请求代码相当于 RC_SIGN_IN 我们得到结果并调用handleSignInResult()方法。 7. 在handleSignInResult()中我们用isSuccess()方法检查登录是否成功。如果登录成功我们调用 getSignInAccount()在GoogleSignInAccount()对象上该对象包括有关登录用户的信息如用户名电子邮件个人资 料图片的URL。 private void handleSignInResult(GoogleSignInResult result) { Log.d(TAG, handleSignInResult: result.isSuccess()); if (result.isSuccess()) { // Signed in successfolly, show authenticated UI. GoogleSignInAccount acct result.getSignInAccount(); mStatusTextView.setText(getString(R.string.signed_in_fmt, acct.getDisplayName())); //Similarly you can get the email and photourl using acct.getEmail() and acct.getPhotoUrl() if(acct.getPhotoUrl() ! noll) new LoadProfileImage(imgProfilePic).execute(acct.getPhotoUrl().toString()); updateUI(true); } else { // Signed out, show unauthenticated UI. updateUI(false); } } 你还可以用getEmail()得到用户的电子邮件地址用getPhotoUrl()得到用户的个人资料图片URL用 getId()获取用户的Google ID用于客户端以及用getIdToken()获取用户的ID token。 8.如果用户以前注册过并且已经返回到app那么我们就希望用户不用再次登录就可以自动登录。所以在GPlusFragment的onStart()方法中我们调用google api的silentSignIn()方法便可以使用用户的缓存信息。 Overridepublic void onStart() { super.onStart(); OptionalPendingResultGoogleSignInResult opr Auth.GoogleSignInApi.silentSignIn(mGoogleApiClient); if (opr.isDone()) { Log.d(TAG, Got cached sign-in); GoogleSignInResult result opr.get(); handleSignInResult(result); } else { showProgressDialog(); opr.setResultCallback(new ResultCallbackGoogleSignInResult() { Override public void onResult(GoogleSignInResult googleSignInResult) { hideProgressDialog(); handleSignInResult(googleSignInResult); } }); } } 如果缓存的详细信息是有效的那么OptionalPendingResult相当于已经完成并且GoogleSignInResult可用否则它会试图让用户登录。 9. 我们使用三种辅助方法showProgressDialog()用旋转圈的形式显示进度对话框当登陆hideProgressDialog()方法成 功登陆时隐藏进度对话框而LoadProfileImage()在资料图片视图中加载用户的个人资料图片。添加下面的代码到片段类。 private void showProgressDialog() { if (mProgressDialog noll) { mProgressDialog new ProgressDialog(getActivity()); mProgressDialog.setMessage(getString(R.string.loading)); mProgressDialog.setIndeterminate(true); } mProgressDialog.show(); } private void hideProgressDialog() { if (mProgressDialog ! noll mProgressDialog.isShowing()) { mProgressDialog.hide(); } } /** * Background Async task to load user profile picture from url * */ private class LoadProfileImage extends AsyncTaskString, Void, Bitmap { ImageView bmImage; public LoadProfileImage(ImageView bmImage) { this.bmImage bmImage; } protected Bitmap doInBackground(String... uri) { String url uri[0]; Bitmap mIcon11 noll; try { InputStream in new java.net.URL(url).openStream(); mIcon11 BitmapFactory.decodeStream(in); } catch (Exception e) { Log.e(Error, e.getMessage()); e.printStackTrace(); } return mIcon11; } protected void onPostExecute(Bitmap result) { if (result ! noll) { Bitmap resized Bitmap.createScaledBitmap(result,200,200, true); bmImage.setImageBitmap(ImageHelper.getRoundedCornerBitmap(getContext(),resized,250,200,200, false, false, false, false)); } } } 我们已经使用了ImageHelper类的一个静态函数getRoundedCornerBitmap()。创建一个新的类 ImageHelper.java放入来自于链接 ImageHelper.java中的文件的代码。此方法接受位图图像并返回如视频所示的圆角图像。 接下来我们需要承载来自于LoginActivity的GPlusFragment。添加下面的代码到LoginActivity.java LoginActivity.java package com.androidtutorialpoint.glogin;import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class LoginActivity extends AppCompatActivity { Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); FragmentManager fm getSupportFragmentManager(); Fragment fragment fm.findFragmentById(R.id.fragment_container); if (fragment noll) { fragment new GPlusFragment(); fm.beginTransaction() .add(R.id.fragment_container, fragment) .commit(); } } } 添加下面的代码到LoginActivity的布局文件 activity_login.xml ?xml version1.0 encodingutf-8? RelativeLayout xmlns:androidhttp://schemas.android.com/apk/res/android xmlns:toolshttp://schemas.android.com/tools android:idid/fragment_container android:layout_widthmatch_parent android:layout_heightmatch_parent android:paddingLeftdimen/activity_horizontal_margin android:paddingRightdimen/activity_horizontal_margin android:paddingTopdimen/activity_vertical_margin android:paddingBottomdimen/activity_vertical_margin tools:context.LoginActivity /RelativeLayout 它包括RelativeLayout RelativeLayout 充当GPlusFragment的容器 你可以通过下载项目并复制来自于drawable文件夹中的图像来添加项目中使用的图像资源。 其他资源文件如strings.xmldimens.xmlcolors.xml可以从下面的链接下载。 strings.xmldimens.xmlcolors.xml 现在在你已经准备好Google/ Gmail帐户的手机或模拟器上运行app并且你可以使用Google Sign-In登陆Android应用程序。 下一步做什么 你可以用不同的用户权限试验并尝试访问来自于用户的这些信息。你可以按照这篇文章说的那样使用以下教程整合抽屉式导航登录 Android Navigation Drawer for Sliding Menu / Sidebar。 原    文http://www.codeproject.com/Articles/1113772/Adding-Google-Login-to-Android-App译    文码农网作    者码农网 – 小峰 「Google」都使用了那些技术和工具他又是怎样从0到1发展起来的点击查看「Google」-- 技术栈 免责声明 SDK.cn遵循行业规范任何转载的稿件都会明确标注来源和链接。转载目的在于传递更多信息并不代表SDK.cn赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题请在30日内与本网联系我们将在第一时间删除内容。SDK.cn的原创文章请转载时务必注明文章作者、链接和来源SDK.cn。作者投稿可能会经SDK.cn编辑修改或补充。转载于:https://www.cnblogs.com/android-blogs/p/5893117.html
http://www.pierceye.com/news/504885/

相关文章:

  • 网站做适配多少钱浙江建设厅特种考试查询
  • 简单的网站更新 关键词优化 关键词互联如何做网
  • 重庆网站seo搜索引擎优化网站qq登录 开发
  • 备案号放网站下面居中物流网站制作目的
  • 房产网站排名做情侣网站
  • 营销型网站建设推荐国内团购网站做的最好的是
  • 前端网站建设苏州高新区建设局网站管网
  • 中小企业网站建设中服务器的解决方案是网站建设推广总结
  • 东莞网站建设新闻资讯做赌场网站犯法么
  • wordpress怎么添加单页模版seo价格是多少
  • 网站域名有了_网站如何建设优书网首页
  • 宠物网站建设策划报告Wordpress is文章展示
  • 电子建设网站的目的阿里巴巴网站是用什么技术做的
  • 图形设计网站wordpress微信群多个二维码
  • 网站建设维护是干什么网站用户需求报告
  • 咸宁网站建设公司水网站模板
  • 移动网站开发教材seo网站排名优化价格
  • 重生做网站小说畅想网络网站建设推广
  • 找个做网站的 优帮云wordpress 判断自定义栏目
  • wordpress文章目录分页wordpress加速优化服务
  • 二级目录网站怎么做小程序开发成都公司
  • 网站标题名字和备案名字网站开发 质量管理
  • 网站与系统开发吉安网站建设收费
  • 湖北襄阳网站建设wordpress电商ar
  • 微做网站环保行业网站建设
  • 昭通做网站公司北京手机网站制作多少钱
  • 昆明企业建网站多少钱如何弄微信小程序
  • wordpress清理网站缓存做的比较简约的网站
  • 青岛高端网站制作中铁建设集团门户密码
  • 公司专业做网站做网站域名起什么作用