환자 추적 Android 앱(Kotlin)에 Huawei 계정 키트 통합 - 1부
소개
이 기사에서는 Huawei Account Kit를 Patient Tracking 앱에 통합하는 방법을 알아볼 수 있습니다. 그래서 저는 이 환자 추적 앱에 대한 일련의 기사를 제공할 것이며, 향후 기사에서는 다른 Huawei 키트를 통합할 것입니다.
계정 키트
Huawei 계정 키트는 개발자에게 간단하고 안전하며 빠른 로그인 및 인증 기능을 제공합니다. 사용자는 계정과 암호를 입력하고 인증을 기다릴 필요가 없습니다. 사용자는 HUAWEI ID로 로그인 버튼을 클릭하여 빠르고 안전하게 앱에 로그인할 수 있습니다.
요구 사항
HMS 종속성을 통합하는 방법
참고: 프로젝트 이름은 사용자가 만든 이름에 따라 다릅니다.
maven { url 'http://developer.huawei.com/repo/' }
classpath 'com.huawei.agconnect:agcp:1.6.0.300'
apply plugin: id 'com.huawei.agconnect'
// Huawei AGC
implementation 'com.huawei.agconnect:agconnect-core:1.6.0.300'
// Huawei Account Kit
implementation 'com.huawei.hms:hwid:6.3.0.301'
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
개발로 이동하자
빈 활동으로 Android 스튜디오에서 프로젝트를 생성하여 코딩을 시작하겠습니다.
MainActivity.kt에서 비즈니스 로직을 찾을 수 있습니다.
class MainActivity : AppCompatActivity() {
// Account Kit variables
private var mAuthManager: AccountAuthService? = null
private var mAuthParam: AccountAuthParams? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Account kit button click Listener
btn_login.setOnClickListener(mOnClickListener)
}
// Account kit, method to send an authorization request.
private fun signIn() {
mAuthParam = AccountAuthParamsHelper(AccountAuthParams.DEFAULT_AUTH_REQUEST_PARAM)
.setIdToken()
.setAccessToken()
.setProfile()
.createParams()
mAuthManager = AccountAuthManager.getService(this@MainActivity, mAuthParam)
startActivityForResult(mAuthManager?.signInIntent, 1002)
}
private val mOnClickListener: View.OnClickListener = object : View.OnClickListener {
override fun onClick(v: View?) {
when (v?.id) {
R.id.btn_login -> signIn()
}
}
}
// Process the authorization result
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == 1002 ) {
val authAccountTask = AccountAuthManager.parseAuthResultFromIntent(data)
if (authAccountTask.isSuccessful) {
Toast.makeText(this, "SigIn success", Toast.LENGTH_LONG).show()
val intent = Intent(this@MainActivity, Home::class.java)
startActivity(intent)
} else {
Toast.makeText(this, "SignIn failed: " + (authAccountTask.exception as ApiException).statusCode, Toast.LENGTH_LONG).show()
}
}
}
}
activity_main.xml에서 UI 화면을 만들 수 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:ignore="ExtraText,MissingConstraints">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="62dp"
android:layout_marginTop="35dp"
android:layout_marginRight="62dp"
android:gravity="center"
android:paddingTop="14dp"
android:paddingBottom="14dp"
android:text="Login"
android:textColor="@color/black"
android:textSize="28sp"
android:textStyle="bold">
</TextView>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="62dp"
android:layout_marginTop="32dp"
android:layout_marginRight="62dp"
android:background="@drawable/blue_border_rounded_cornwe">
<EditText
android:id="@+id/edt_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/username_icon"
android:background="@android:color/transparent"
android:hint="Enter Username "
android:inputType="textEmailAddress"
android:maxLines="1"
android:paddingLeft="17dp"
android:paddingTop="15dp"
android:paddingBottom="15dp"
android:textSize="13sp">
</EditText>
<ImageView
android:id="@+id/username_icon"
android:layout_width="20dp"
android:layout_height="17dp"
android:layout_centerVertical="true"
android:layout_marginLeft="17dp"
android:src="@drawable/username" />
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="62dp"
android:layout_marginTop="13dp"
android:layout_marginRight="62dp"
android:background="@drawable/blue_border_rounded_cornwe">
<EditText
android:id="@+id/edt_pass"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/pass_icon"
android:background="@android:color/transparent"
android:hint="Password"
android:inputType="textPassword"
android:maxLength="10"
android:maxLines="1"
android:paddingLeft="17dp"
android:paddingTop="15dp"
android:paddingBottom="15dp"
android:textSize="13sp">
</EditText>
<ImageView
android:id="@+id/pass_icon"
android:layout_width="20dp"
android:layout_height="17dp"
android:layout_centerVertical="true"
android:layout_marginLeft="17dp"
android:src="@drawable/password" />
</RelativeLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginTop="12dp"
android:layout_marginRight="63dp"
android:paddingTop="14dp"
android:paddingBottom="14dp"
android:text="Forgot Password?"
android:textAllCaps="false"
android:textColor="#0A0A0B"
android:textSize="14sp">
</TextView>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="62dp"
android:layout_marginTop="19dp"
android:layout_marginRight="62dp"
android:background="@drawable/blue_fill__rounded_color"
android:gravity="center"
android:paddingTop="14dp"
android:paddingBottom="14dp"
android:text="Login"
android:textColor="@color/white"
android:textSize="15sp">
</TextView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="45dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Sign in with Social Networks"
android:textColor="#0E0E0E"
android:textSize="15sp">
</TextView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="55dp"
android:gravity="center"
android:orientation="horizontal">
<ImageView
android:id="@+id/btn_login"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/huawei_icon" />
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:src="@drawable/google" />
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginRight="20dp"
android:src="@drawable/instagram_icon" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
데모
팁과 요령
결론
이 기사에서는 Huawei 계정 키트를 환자 추적 앱에 통합하는 방법을 배웠습니다. 그래서 저는 이 환자 추적 앱에 대한 일련의 기사를 제공할 것이며, 향후 기사에서는 다른 Huawei 키트를 통합할 것입니다.
이 기사를 읽으셨기를 바랍니다. 도움이 되셨다면 좋아요와 댓글 부탁드립니다.
참조
계정 키트 – Documentation
계정 키트 – Training Video
Reference
이 문제에 관하여(환자 추적 Android 앱(Kotlin)에 Huawei 계정 키트 통합 - 1부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hmscommunity/integration-of-huawei-account-kit-in-patient-tracking-android-app-kotlin-part-1-c6l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)