回答:
不可能です。設定コードは、これを防ぐために特別に書かれています。最も近いのは、設定アプリのデバイス管理設定ページを表示することです。これは次の方法で行うことができます。
adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
一重引用符なしである必要があり ます
ルートなしでAndroid 7.0でテストされ、動作しています:
adb shell
dpm set-active-admin --user current com.company.foo.bar.package/.the.Admin.Reciever
インストールされたパッケージの管理レシーバーを見つけるには、以下を使用してadb shellコマンドを実行し、出力を確認します。
adb shell
pm dump com.company.foo.bar.package | grep ' filter' | cut -d ' ' -f 12 | sort | uniq
実際の例を示すために、IBMのMaas360 Androidクライアントをデバイス管理者としてアクティブ化するために使用するコマンドを次に示します。
adb shell
pm dump com.fiberlink.maas360.android.control | grep ' filter' | cut -d ' ' -f 12 | sort | uniq
Output:
…
com.fiberlink.maas360.android.control/.receivers.GoogleCampaignReceiver
com.fiberlink.maas360.android.control/.receivers.LocalEventReceiver
com.fiberlink.maas360.android.control/.receivers.Maas360DeviceAdminReceiver <-- This is the one I want
com.fiberlink.maas360.android.control/.receivers.Maas360SecondaryDeviceAdminReceiver
…
Set Device Admin:
dpm set-active-admin --user current com.fiberlink.maas360.android.control/.receivers.Maas360DeviceAdminReceiver
はい、あなたがルートアクセスを持っている限り。ファイルにアプリのレシーバーとポリシーフラグを追加する必要があります/data/system/device_policies.xml
。たとえば、Taskerをデバイス管理者として有効にするには、上記のファイルに次の行を追加します。
Android 5.xの場合:</policies>
システムで既に有効になっているデバイス管理者がいる場合は、最後の行を削除します。ファイルの行をstringの行の後に追加するだけ<policies setup-complete="true">
です。
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>
Android 4.2.1の場合:</policies>
システムで既にデバイス管理者が有効になっている場合は、最後の行を削除します。ファイルの行をstringの行の後に追加するだけ<policies>
です。
<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>
変更を有効にするためにデバイスを再起動します。
(Busyboxのは、あなたが使用できる必要)sed
またはecho
あなたがそれらの行を持つファイルを書き込むために慣れていることを任意のコマンドをか。ヘルプが必要な場合は、こちらの回答を参照してください:Taskerを使用して特定のアプリのデバイス管理者を有効にする方法は?
これは可能です。Androidの新しいツールUI-Automatorを使用して、デバイス管理の[アクティブ化]を含む、システムのビューまたはボタンをクリックして操作できます。方法は次のとおりです。
設定リストを操作するためのコードを記述し、「アクティブ化」をクリックします。例:
UiScrollable settingsItem = new UiScrollable(new UiSelector()。className( "android.widget.ListView")); UiObject listButton = settingsItem.getChildByText(new UiSelector()。className( "android.widget.LinearLayout")、 "Enable Device Admin"); listButton.click(); (new UiObject(new UiSelector()。text( "Activate")))。clickAndWaitForNewWindow(); me.celebrateWith(new Beer());
コンパイルします。 ant build
adb -d push bin/LookoutTest.jar /data/local/tmp/
adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"
adb -d shell uiautomator runtest LookoutTest.jar -c DALaunch
Android Studioからデバイスを所有者として設定できます。まず、Android SdkのPlatform-toolsにあるadbの場所に移動してから、adbシェルコマンドを実行します。フルパスを指定しました。adbパスとパッケージ名を変更すると、要件に合わせて調整できます
C:\Users\Owner\AppData\Local\Android\Sdk\platform-tools>adb shell dpm set-device-owner package-name/.MyDeviceAdminReceiver
MyDeviceAdminReceiverはインターフェースです。