2

デバイス管理アプリを作成するためのコードを共有し、最後に少し助けを求めるだけです。このリンクを参照しました:

デバイス管理者

これはマニフェスト コードです。

次の方法でブロードキャストレシーバーを宣言する必要があります。属性は自明です。

<receiver
        android:name=".DeviceAdmin"
        android:description="@string/data"
        android:label="Mobile Security"
        android:permission="android.permission.BIND_DEVICE_ADMIN" >
        <meta-data
            android:name="android.app.device_admin"
            android:resource="@xml/policies" />

        <intent-filter android:priority="1000">
            <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
        </intent-filter>
</receiver>

android:resource="@xml/policies" この xml ファイルには、使用するポリシーのリストが含まれています。

次に、デバイスのデバイス管理者にアプリを登録するために使用される、次のような DeviceAdminReceiver のサブクラスを宣言する必要があります。

public class DeviceAdmin extends DeviceAdminReceiver{

@Override
public void onDisabled(Context context, Intent intent) {
    // TODO Auto-generated method stub
    super.onDisabled(context, intent);
    Toast.makeText(context, "App is UnLocked and can be uninstalled.",              Toast.LENGTH_SHORT).show();
}

@Override
public void onEnabled(Context context, Intent intent) {
    // TODO Auto-generated method stub
    super.onEnabled(context, intent);
    Toast.makeText(context, "App is Locked and cannot be uninstalled.",        Toast.LENGTH_SHORT).show();
}           

}

onDesable() と onEnable() の 2 つのメソッドは、ユーザーが管理をアクティブ化または非アクティブ化したときに、ユーザーにメッセージを表示するために使用されます。

今、アプリのロックとロック解除を処理しているアクティビティ:

btnLock.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            ComponentName component = new ComponentName(StartActivity.this, DeviceAdmin.class);
            Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
            intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, component);
            intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,"Lock this app from being uninstalled");
            startActivity(intent);
            btnLock.setEnabled(false);
            btnUnlock.setEnabled(true);
        }
    });

    btnUnlock.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            DevicePolicyManager dPm = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
            ComponentName component = new ComponentName(StartActivity.this, DeviceAdmin.class);
            dPm.removeActiveAdmin(component);
            btnUnlock.setEnabled(false);
            btnLock.setEnabled(true);
        }
    });

パスワードを設定したいのですが、アプリがデバイス管理者から非アクティブ化されるたびにパスワードを確認する必要があります。

4

0 に答える 0