問題タブ [cosu]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - カスタム Android DPC アプリの設計は、Android 管理 API とどのように関連していますか?
私は Android エンタープライズ開発の世界に不慣れで、Android エンタープライズ エコシステムのさまざまな部分が互いにどのように関連しているかについて、いくつかの誤解があります。説明させてください。
私が達成しようとしている解決策は、デバイスをリモートでキオスク モードにロックできることと、ユーザーがオフラインの場合でもビジネス ロジックに基づいてロックできることです。問題を解決するために、EMM、特にAndroid Management APIの調査を開始しました。API を使用して、デバイスをリモートでキオスク モードにロックすることができました。私が取る手順は次のとおりです
- Android デバイスを出荷時設定にリセットする
- ユーザーが資格情報を入力する必要がある画面に到達する
- 実際の資格情報の代わりに afw#setup と入力します
- デバイスが仕事用プロファイル モードになり、Android デバイス ポリシーがインストールされます
- 管理 API で登録トークンを作成します (その手順はクイック スタート ガイドに記載されています)。
- QR コードを生成し、プロンプトが表示されたらすぐに出荷時設定にリセットしたデバイスを使用してスキャンします
- デバイスは企業にリンクされます。特別なキオスク モード ポリシーを作成し、パッチ ポリシーの組み合わせを使用してそのポリシーに準拠するようにデバイスにパッチを適用することで、デバイスを制御し、デバイスをキオスク モードにすることができます。ポリシー) とデバイスAPIにパッチを適用します。
次のステップは、ユーザーがオフラインの場合でもデバイスをキオスク モードにロックする方法を見つけることでした。AndroidエンタープライズカスタムDPC(デバイスポリシーコントローラー)アプリケーションを作成することで起こると思います。次のドキュメントを読んで、「単一目的」デバイスをプロビジョニングする 3 つの方法の 1 つがカスタム DPC アプリケーションの作成であると想定しました。別のURLからの別の引用です
EMM として、EMM コンソールおよびサーバーと組み合わせて顧客が使用できる DPC アプリを開発します。顧客は、管理するユーザー デバイスに DPC を展開します。DPC は、EMM コンソール (およびサーバー) とデバイスの間のブリッジとして機能します。管理者は EMM コンソールを使用して、デバイス設定やアプリの構成など、さまざまなタスクを実行します。
そして、ここで私の混乱がすべて発生します。当然生じる最初の質問 -前の引用の著者は、EMM コンソールとサーバーについて話すとき、EMM 管理 API に言及していましたか?
さらに、私が答えを見つけることができなかったより多くの質問があります
カスタム DPC を作成するためのガイドでは、EMM API がカスタム DPC で果たす役割について言及されていないため、カスタム DPC が EMM コンソール (おそらく EMM API) 間のブリッジである方法を正確に説明している場所はありません。そしてデバイス?
次に、カスタム DPC アプリケーションを開発し、Google Play アルファ チャンネルにアップロードしたとします。ドキュメントには、セットアップ プロセス中に afw#setup と入力する代わりに afw#DPC_NAME と入力する必要があると記載されていますが、その名前を生成する方法がわかりません。DPCアプリのバンドルIDですか?それとも、Google設定のどこかに設定されていますか?たとえば、Google はエンタープライズ ソリューションをテストするためのTestDPCアプリケーションを開発しました。私は上記の手順を実行して afw#testdpc と入力し、git readme ファイルの QR コードを正常にスキャンできました。TestDPC がインストールされ、デバイスが仕事用プロファイル モードで起動されました。したがって、どうにかして自分の「testdpc」を登録し、代わりに afw#my_dpc を入力する必要があると思います。
基本的に、私はさまざまなピースを独立して動作させており、それらのピースをどのようにつなぎ合わせるかを理解するために、頭の中でより広い全体像を形成したいと考えています.
回答ありがとうございます
更新 1:
今日、NFC やその他のプロビジョニング プロセスを経ることなく、カスタム DPC をデバイス オーナーにする方法を見つけました。これは、開発目的で特に役立ちます。手順については、このリンクをたどってください。これは時間の大幅な節約になります。また、私の場合、まだ Google の承認を待っていますが、最終的にカスタム プロビジョニング プロセスを必要とせずにいくつかのテストを開始できます。
android - アプリを実用的に更新するときの PackageInstaller エラー
このクラスにかなり厳密にCosuUtils
従うというクラスがあります。デバイス所有者であるアプリケーションをプログラムで更新しています。これは Android 6 では問題なく動作しますが、Android 7 で更新しようとすると次のエラーが発生します。
PackageInstaller: Commit of session 1108510423 failed: /data/app/vmdl1108510423.tmp/COSU specified package com.mypackage inconsistent with com.mypackage.full
CosuUtils
パッケージ名をそのように設定します
前に述べたように、Android 6で正常に動作するものを渡しcom.mypackage
てinstallPackage
いました。これは、使用しない限りAndroid 7では動作しませんcom.mypackage.full
。問題は、これにより、Android 7 にアップグレードしたユーザーがアプリの最新バージョンに更新できなくなることです。Android 6 と 7 の間で何が変更されて壊れたのですか? また、回避策はありますか?