ユーザー認証

アプリの配布を限られたユーザーに制限する

テスト版のアプリは、配布対象を限られたユーザーに制限したい場合がしばしばあります。

Android端末上のアプリは、誰からでもroot権限無しに取り出せてしまうため、ファイルの配布そのものを制限するだけではアプリを保護することができません。このような場合でも、 DeployGate SDK を使うことで、アプリの利用許可を制御することができます。

例えば次のようなコードを Activity#onCreate に記述することで、認証されていないユーザーがアプリを起動できないようにすることができます。

DeployGate.registerCallback(new DeployGateCallback() {
    @Override
    public void onInitialized(boolean isServiceAvailable) {
        if (!isServiceAvailable) {
            Toast.makeText(this, "DeployGate is not available", Toast.LENGTH_SHORT).show();
            finish();
        }
    }

    @Override
    public void onStatusChanged(boolean isManaged, boolean isAuthorized, String loginUsername, boolean isStopped) {
        if (!isAuthorized) {
            Toast.makeText(this, "This device is not authorized to use this app", Toast.LENGTH_SHORT).show();
            finish();
        }
    }

    @Override
    public void onUpdateAvailable(int revision, String versionName, int versionCode) {}
}, true);

DeployGate SDKでは、他にも現在のユーザがアプリを利用する権利のあるユーザーかどうか、すなわち現在のユーザーの利用可能なアプリ一覧にこのアプリが入っているかを確認するためのいくつかの関数を提供しています。

DeployGate.isDeployGateAvailable(); // True if Deploygate has been installed
DeployGate.isAuthorized(); // True if app is avairable for current user
DeployGate.getLoginUsername(); // Current login username
DeployGate.getAuthorUsername(); // App developer username
DeployGate.isDeployGateAvailable(); // DeployGateがインストールされているとtrue
DeployGate.isAuthorized(); // このアプリが現在のユーザーで利用可能なものであればtrue
DeployGate.getLoginUsername(); // 現在のログインユーザー名
DeployGate.getAuthorUsername(); // アプリの提供者のユーザー名

詳細は JavaDoc をご覧下さい。