user_restriction
テスト版のアプリは、配布対象ユーザーを制限したい場合がしばしばあります。
Android端末上のアプリは誰でもroot権限無しに取り出せてしまうため、ファイルの配布そのものを制限するだけではアプリを保護することができません。このような場合でも、 DeployGate SDK を使うことでアプリの利用できるユーザーをプログラムで制御することができます。
ユーザーの状態を取得する
DeployGate SDKでは、他にも現在のユーザがアプリを利用する権利のあるユーザーかどうか、すなわち現在のユーザーの利用可能なアプリ一覧にこのアプリが入っているかを確認するためのいくつかの関数を提供しています。
DeployGate.isDeployGateAvailable(); // DeployGateがインストールされているなら true
DeployGate.isAuthorized(); // 現在のユーザーが DeployGate 上でこのアプリにアクセスできるなら true
DeployGate.getLoginUsername(); // 現在のログインユーザー名
DeployGate.getAuthorUsername(); // アプリの提供者のユーザー名
DeployGate.deployGateAvailable // DeployGateがインストールされているなら true
DeployGate.authorized // 現在のユーザーが DeployGate 上でこのアプリにアクセスできるなら true
DeployGate.loginUsername // 現在のログインユーザー名
DeployGate.authorUsername // アプリの提供者のユーザー名
サンプル
DeployGate.registerCallback(new DeployGateCallback() {
@Override
public void onInitialized(boolean isServiceAvailable) {
if (!isServiceAvailable) {
Toast.makeText(this, "DeployGate クライアントアプリが見つからないか、利用不可能です", Toast.LENGTH_SHORT).show();
finish();
}
}
@Override
public void onStatusChanged(boolean isManaged, boolean isAuthorized, String loginUsername, boolean isStopped) {
if (!isAuthorized) {
Toast.makeText(this, "このユーザーはこのアプリを使う認証が通っていません", Toast.LENGTH_SHORT).show();
finish();
}
}
@Override
public void onUpdateAvailable(int revision, String versionName, int versionCode) {}
}, true);
DeployGate.registerCallback(object: DeployGateCallback() {
override fun onInitialized(isServiceAvailable: Boolean) {
if (!isServiceAvailable) {
Toast.makeText(this, "DeployGate is not available", Toast.LENGTH_SHORT).show()
finish()
}
}
override fun onStatusChanged(isManaged: Boolean, isAuthorized: Boolean, loginUsername: String?, isStopped: Boolean) {
if (!isAuthorized) {
Toast.makeText(this, "This device is not authorized to use this app", Toast.LENGTH_SHORT).show()
finish()
}
}
override fun onUpdateAvailable(revision: Int, versionName: String, versionCode: int) {}
}, true)
例えば上記のコードを利用することで、DeployGate クライアントアプリが利用できない状態、またはその端末のユーザーがそのアプリにアクセスする権利を持っていない場合に Activity
が即終了させるように実装することができます。