android-sdk¥samples¥android-14¥ApiDemos¥src¥com¥example¥android¥apis¥app¥DeviceAdminSample.java
必要な部分を抜き出すと以下のようだ。
static final private int REQUESTCODE = 1;
DevicePolicyManager mDevicePolicyManager = (DevicePolicyManager)getSystemService(DEVICE_POLICY_SERVICE);
ComponentName mComponentName = new ComponentName(this, DeviceAdminReceiver.class);
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mComponentName);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "Explanation");
startActivityForResult(intent, REQUESTCODE);
これを呼び出すことで、ユーザに承認を得るための画面を表示されるようだ。
@Overrideユーザの承認を受けたかどうかを判定するにはこの処理が必要だ。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case REQUESTCODE:
if (resultCode == Activity.RESULT_OK) {
Toast.makeText(this, "Admin is enabled.", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Admin is not enabled.", Toast.LENGTH_SHORT).show();
this.finish();
}
return;
}
super.onActivityResult(requestCode, resultCode, data);
}
mDevicePolicyManager.setCameraDisabled(mComponentName, true);そして、カメラを不使用にするには新しく追加された上記のAPIを呼び出す。仕様可能にするには、falseにすればいい。
mDevicePolicyManager.removeActiveAdmin(mComponentName);そして最後に上記を呼び出す。
<?xml version="1.0" encoding="utf-8"?><device-admin xmlns:android="http://schemas.android.com/apk/res/android"> <uses-policies> <disable-camera /> </uses-policies></device-admin>ポリシ設定も必要なようだ。上記のxmlファイルを作成する。上記のファイルをxml/device_admin.xmlとする。
AndroidManifest.xmlに上記の追加が必要だ。特にカメラのオンオフだけだと不要だったが、DeviceAdminReceiverを継承したクラスを作ってそれを設定することもできる。<receiver android:name="android.app.admin.DeviceAdminReceiver"
android:permission="android.permission.BIND_DEVICE_ADMIN" > <meta-data android:name="android.app.device_admin"
android:resource="@xml/device_admin" />
<intent-filter > <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> </intent-filter> </receiver>
ユーザの承認画面は以下の画面。
カメラを使用不可にした場合は、カメラを起動すると以下のようにメッセージが出る。
0 件のコメント:
コメントを投稿