Android SDK 統合ガイド
概要
MTVerify Android SDK は携帯電話番号認証 SDK であり、高速かつ安全なキャリアレベルの電話番号検証サービスを提供します。
主な機能
- SDK 初期化:AppKey を使用して設定を自動取得し初期化します
- カバレッジ確認:現在のネットワーク環境が認証サービスに対応しているか確認します
- 番号認証:携帯電話番号認証を開始し、認証トークンを取得します
システム要件
- Android 5.0(API 21)以上
- ユーザー端末でモバイルネットワークが有効になっていること
統合ガイド
権限の設定
aar パッケージは以下の権限を要求します:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
キャリア設定
キャリアのインターフェースは HTTP 平文通信を使用する必要があるため、アプリの AndroidManifest.xml でネットワークセキュリティポリシーを設定する必要があります:
<application
android:networkSecurityConfig="@xml/mtverify_network_security_config"
...>
...
</application>
また、mtverify_network_security_config.xml ファイルをアプリの res/xml/ ディレクトリにコピーする必要があります。このファイルはダウンロードしたインストールパッケージ内にあります。
メソッド一覧
- setLogEnable - ログのオン/オフを設定
- init - SDK を初期化
- checkCoverage - カバレッジを確認
- startAuthentication - 認証を実行
init
MTVerify SDK を初期化し、アプリキーと環境設定を行います。
メソッドシグネチャ
@JvmStatic
fun init(
context: Context,
appkey: String,
environment: IPEnvironment = IPEnvironment.PRODUCTION,
callback: InitCallback? = null
)
パラメータの説明
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| context | Context | はい | Android のコンテキストオブジェクト |
| appkey | String | はい | アプリキー。アプリを識別するために使用 |
| environment | IPEnvironment | いいえ | 環境タイプ。デフォルトは SANDBOX。選択肢: - IPEnvironment.SANDBOX:テスト/サンドボックス環境 - IPEnvironment.PRODUCTION:本番環境 |
| callback | InitCallback? | いいえ | 初期化コールバックインターフェース。初期化結果を受け取るために使用 |
戻り値
なし
コールバック結果
初期化結果は InitCallback.onComplete(result: InitResult) を通じて返されます:
data class InitResult(
val code: Int, // ステータスコード。0 は成功、その他の数値は失敗を表す
val message: String? // メッセージ(成功またはエラーメッセージ)
)
使用例
MTVerifyApi.init(
context = this,
appkey = "your_app_key",
environment = IPEnvironment.PRODUCTION,
callback = object : InitCallback {
override fun onComplete(result: InitResult) {
if (result.code == 0) {
// 初期化成功
Log.d("MTVerify", "初期化成功: ${result.message}")
} else {
// 初期化失敗
Log.e("MTVerify", "初期化失敗: ${result.message}")
}
}
}
)
注意事項
- 他の機能を使用する前に、必ず
init()メソッドを呼び出して SDK を初期化する必要があります - 初期化プロセスでは HTTP リクエストを通じて
clientIdとredirectUrlを取得するため、ネットワーク接続が必要です
setLogEnable
ログのオン/オフを設定し、SDK のログ出力を制御します。
メソッドシグネチャ
@JvmStatic
fun setLogEnable(enable: Boolean)
パラメータの説明
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| enable | Boolean | はい | true はログを有効化、false はすべてのログ出力を無効化 |
使用例
// ログを有効化
MTVerifyApi.setLogEnable(true)
// ログを無効化
MTVerifyApi.setLogEnable(false)
checkCoverage
指定した携帯電話番号が IPification 検証サービスに対応しているか確認します。
メソッドシグネチャ
@JvmStatic
fun checkCoverage(
context: Context,
phoneNumber: String,
callback: CoverageCallback? = null
)
パラメータの説明
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| context | Context | はい | Android のコンテキストオブジェクト |
| phoneNumber | String | はい | 国コード + ユーザーの携帯電話番号 |
| callback | CoverageCallback? | いいえ | カバレッジ確認コールバックインターフェース |
戻り値
なし
コールバック結果
確認結果は CoverageCallback.onComplete(result: CoverageResult) を通じて返されます:
data class CoverageResult(
val code: Int, // ステータスコード。0 は成功、その他の数値は失敗を表す
val isAvailable: Boolean, // 利用可能かどうか(対応キャリア)
val operatorCode: String?, // キャリアコード
val message: String? // メッセージ(成功またはエラーメッセージ)
)
使用例
MTVerifyApi.checkCoverage(
context = this,
phoneNumber = "6281234567890",
callback = object : CoverageCallback {
override fun onComplete(result: CoverageResult) {
if (result.code == 0) {
if (result.isAvailable) {
// サービスに対応
Log.d("MTVerify", "キャリア対応: ${result.operatorCode}")
} else {
// サービス非対応
Log.d("MTVerify", "キャリア非対応")
}
} else {
// 確認失敗
Log.e("MTVerify", "確認失敗: ${result.message}")
}
}
}
)
startAuthentication
携帯電話番号認証フローを開始します。
メソッドシグネチャ
@JvmStatic
fun startAuthentication(
activity: Activity,
countryCode: String,
phoneNumber: String,
callback: AuthenticationCallback? = null
)
パラメータの説明
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| activity | Activity | はい | Android の Activity オブジェクト。認証画面の表示に使用 |
| countryCode | String | はい | 国コード |
| phoneNumber | String | はい | ユーザーの携帯電話番号(国コードを含まない) |
| callback | AuthenticationCallback? | いいえ | 認証コールバックインターフェース |
戻り値
なし
コールバック結果
認証結果は AuthenticationCallback.onComplete(result: AuthenticationResult) を通じて返されます:
data class AuthenticationResult(
val code: Int, // ステータスコード。0 は成功、-1 は失敗、-2 はユーザーキャンセルを表す
val token: String?, // 暗号化された認証データ(code を含む JSON 文字列。AES で暗号化)
val message: String? // メッセージ(成功またはエラーメッセージ)
)
注意:token は暗号化された JSON 文字列で、形式は以下のとおりです:
{
"version": "1",
"content": {
"code": "認証コード",
"state": "ステートパラメータ",
"appkey": "アプリキー"
}
}
使用例
MTVerifyApi.startAuthentication(
activity = this,
countryCode = "62",
phoneNumber = "81234567890",
callback = object : AuthenticationCallback {
override fun onComplete(result: AuthenticationResult) {
when (result.code) {
0 -> {
// 認証成功
val token = result.token
// token は結果の置換に使用
Log.d("MTVerify", "認証成功: $token")
}
-1 -> {
// 認証失敗
Log.e("MTVerify", "認証失敗: ${result.message}")
}
-2 -> {
// ユーザーキャンセル
Log.d("MTVerify", "ユーザーが認証をキャンセルしました")
}
}
}
}
)
データモデル
IPEnvironment
環境タイプの列挙:
enum class IPEnvironment {
SANDBOX, // テスト/サンドボックス環境
PRODUCTION // 本番環境
}
InitResult
初期化結果:
data class InitResult(
val code: Int, // ステータスコード。0 は成功
val message: String? // メッセージ
)
CoverageResult
カバレッジ確認結果:
data class CoverageResult(
val code: Int, // ステータスコード。0 は成功
val isAvailable: Boolean, // 利用可能かどうか
val operatorCode: String?, // キャリアコード
val message: String? // メッセージ
)
AuthenticationResult
認証結果:
data class AuthenticationResult(
val code: Int, // ステータスコード。0 は成功、-1 は失敗、-2 はユーザーキャンセル
val token: String?, // 暗号化された認証トークン
val message: String? // メッセージ
)
コールバックインターフェース
InitCallback
初期化コールバックインターフェース:
interface InitCallback {
fun onComplete(result: InitResult)
}
CoverageCallback
カバレッジ確認コールバックインターフェース:
interface CoverageCallback {
fun onComplete(result: CoverageResult)
}
AuthenticationCallback
認証コールバックインターフェース:
interface AuthenticationCallback {
fun onComplete(result: AuthenticationResult)
}
完全な例
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 1. ログを有効化(任意)
MTVerifyApi.setLogEnable(true)
// 2. SDK を初期化
MTVerifyApi.init(
context = this,
appkey = "your_app_key",
environment = IPEnvironment.SANDBOX,
callback = object : InitCallback {
override fun onComplete(result: InitResult) {
if (result.code == 0) {
// 初期化成功。他の機能の使用を開始できる
checkCoverage()
}
}
}
)
}
private fun checkCoverage() {
// 3. カバレッジを確認
MTVerifyApi.checkCoverage(
context = this,
phoneNumber = "6281234567890",
callback = object : CoverageCallback {
override fun onComplete(result: CoverageResult) {
if (result.isAvailable) {
// 4. 対応していれば認証を実行
startAuthentication()
}
}
}
)
}
private fun startAuthentication() {
// 5. 認証を実行
MTVerifyApi.startAuthentication(
activity = this,
countryCode = "62",
phoneNumber = "81234567890",
callback = object : AuthenticationCallback {
override fun onComplete(result: AuthenticationResult) {
if (result.code == 0) {
// 認証成功。token を処理
handleToken(result.token)
}
}
}
)
}
private fun handleToken(token: String?) {
// API を呼び出して置換後の token を処理
}
}
注意事項
- 初期化の順序:他の機能を使用する前に、必ず
init()メソッドを呼び出して SDK を初期化する必要があります。 - スレッドセーフ:すべての API メソッドはメインスレッドで呼び出すことができ、コールバックもメインスレッドで実行されます。
- 権限要件:アプリが必要なネットワーク権限を要求していることを確認してください。
- トークンの復号:認証成功後に返される token は暗号化されているため、対応する復号方法で処理する必要があります。
- ログ制御:パフォーマンスとセキュリティを向上させるため、本番環境ではログ出力を無効にすることを推奨します。
バージョン情報
- SDK バージョン:1.0.1










