簡體   English   中英

如何為設備所有者配置自定義Android Google安裝向導?

[英]How to customize Android Google Setup Wizard for device owner provisioning?

- 使用案例:

在priv-app文件夾中的1-System app apk將用作設備所有者。

2 - 用戶啟動設備並啟動Google安裝向導。

3 - 立即啟動設備配置活動。

- 以前工作的事情:

此方法過去使用動作意圖在Android 6.0 Marshmallow上工作:

<activity android:theme="@style/InvisibleNoTitle" android:name="OwnerActivity" android:launchMode="singleTop" android:immersive="true">
    <intent-filter android:priority="5">
        <action android:name="android.intent.action.MAIN" />
        <action android:name="android.intent.action.DEVICE_INITIALIZATION_WIZARD" />
        <category android:name="android.intent.category.HOME" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

沒有任何問題。

更新到Android 8.1 Oreo后,此方法不再有效。 OwnerActivity僅在設置向導完成后顯示,這是無用的,因為設備已由用戶配置且無法再次提供。

有沒有更新的方法這樣做,以便我的OwnerActivity首先顯示配置設備? 奧利奧有什么變化?

對於答案來說,這有點晚了,如果不與谷歌交談,有點難以看出設計決策是什么。 但是,我們所知道的是改變了什么。 1.至少早在Oreo上就推薦使用android.intent.action.DEVICE_INITIALIZATION_WIZARD 2.程序包管理器服務已進行更改以引用設置向導。 新方法似乎是您的清單定義缺少的android.intent.category.SETUP_WIZARD類別。

閱讀代碼周圍的注釋(您可以在下面找到),我們看到這個日志:

            Slog.e(TAG, "There should probably be exactly one setup wizard; found " + matches.size()
                + ": matches=" + matches);

https://android.googlesource.com/platform/frameworks/base/+/nougat-mr2.3-release/services/core/java/com/android/server/pm/PackageManagerService.java#17872

因此,就像Nougat一樣,Android不支持將多個設置向導鏈接在一起。 對於您如何設置設備管理員的具體問題,我有2條建議。

  1. 如果您關心CDD和CTS,那么您應該讓您的用戶完成他們不斷更新的Google設備所有者配置流程。
  2. 如果您不關心這一點,並且您只希望您的構建始終擁有設備所有者,只需在框架中進行更改或添加一些始終在設置向導之前運行的系統二進制文件,該向導將為您設置設備所有者應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM