何気なく使っているFrameworks 第8回Camera機能ON/OFF
確認OSバージョン
android-4.0.3_r1 ICS
Camera機能OFF
端末のCamera機能をOFFにする設定です。
セキュリティなど徹底している社内で「Camera機能をOFF」にしてしまうなどいろいろ実用性はあるはず。
Frameworksの中身はすごい単純でSystemPropertyにセットしているだけ。
ただし、設定アプリを作成するにはDevice管理アプリの知識が必要。
Camera機能ON/OFFの流れ
- DevicePolicyManager#setCameraDisabledをコール
- IDevicePolicyManager = DevicePolicyManagerService#setCameraDisabledをコール
- getActiveAdminForCallerLocked()
- setCameraDisabledの第一引数 = DeviceAdminReceiverとUidチェック
- ActiveAdminの取得
- saveSettingsLocked()をコールして設定値をxmlファイルとして保存
- syncDeviceCapabilitiesLocked()
- SystemPropertiesからSYSTEM_PROP_DISABLE_CAMERAの情報取得
- 設定値が異なっていたら、SystemPropertiesへ設定
- getActiveAdminForCallerLocked()
設定値xmlファイルの保存位置は以下のソースから確認できます。
private static JournaledFile makeJournaledFile() { final String base = "/data/system/device_policies.xml"; return new JournaledFile(new File(base), new File(base + ".tmp")); }
確認しておいた方がいいソース
\frameworks\base\core\java\android\app\admin
- DevicePolicyManager.java
\frameworks\base\services\java\com\android\server
- \DevicePolicyManagerService.java
設定アプリを作るには
Device Administrationの知識が必要となります。
以下のDeveloperページ参照
http://developer.android.com/intl/ja/guide/topics/admin/device-admin.html