4

Android プログラミングは初めてで、アプライアンスへのインターフェイスを提供するアプリに取り組んでいます。アプリが実行される Android デバイスは、アプライアンスに接続され、アプライアンスの制御のみに使用されます。私が取り組んでいるアプリは、専用の Android デバイスで実行される唯一のアプリです。

リクエスト機能の 1 つは、Android デバイスの起動時にアプリを自動的に起動することです。このスレッドで説明されているように、ACTION_BOOT_COMPLETED インテントを検出してこの機能を実装しました。ただし、このスレッドで説明されているように、アプリをホーム画面にするという代替アプローチが推奨されているのを見てきました。

私が行ったように、ACTION_BOOT_COMPLETED を検出して自動起動機能を実装することは、一般的な Android アプリにとって最善の方法ではない可能性があることを認識しています。しかし、前述のように、私の場合、開発中のアプリはデバイスで使用される唯一のアプリになります。それを考えると、私がとっているアプローチは合理的ですか?または、自動開始機能を実装するより良い方法はありますか?

考慮事項の 1 つは、Android デバイスの構成の容易さです。私が取っているアプローチでは、最初にアプリを起動するという手動の手順が 1 つあります。ただ、アプリをホーム画面にするという別のアプローチをとった場合も手動の手順が必要になるようですので、その点ではそのアプローチを採用するメリットはありません.

ご協力ありがとうございました!

編集:ホームズが以下に提案したように AndroidManifest.xml を変更して、アプリをホーム画面として設定しようとしました。これまでのところ、2 つのアプローチを比較してわかったことは次のとおりです。(1) ホーム画面のアプローチを使用すると、コードがはるかに単純になり、AndroidManifest.xml を少し調整するだけで済み、大幅な変更や BroadcastReceiver クラスを追加する必要がなくなります。 . (2) ホーム画面のアプローチを使用すると、アプリを開くだけでなく、それ以上のことを行う必要があるため、セットアップ手順は少し複雑になりますが、それほど複雑ではありません。(3) ホーム画面のアプローチは、デフォルトのホーム画面を使用して他のアプリを起動できないため、ユーザーを 1 つのアプリに限定するのに適しています。これらの結果に基づいて、おそらくホーム画面のアプローチを使用します。

4

3 に答える 3

2

あなたの質問に基づいて、そのアプリをランチャー (別名ホーム画面) として動作させます。このような場合、アプリがデバイス ランチャーとして設定されると、リッスンするACTION_BOOT_COMPLETED必要はありません。

于 2015-08-03T20:04:50.800 に答える
2

私は現在、専用デバイスのアプリケーションに取り組んでおり、役に立つかもしれないいくつかの詳細を提供できます.

を聞くことACTION_BOOT_COMPLETEDは、デバイスが起動を完了するのを待つのと同じです。ホーム アプリケーションを起動してから、アプリを起動します。

あなたは最終クライアントにホーム画面を見せたくないと思っていますし、私もそうではありません。

ただし、HOMEアプリケーションを Android デバイスのアプリケーションとして定義することはできます。起動が完了するとすぐに、実行時に最初に表示されるアプリケーションになります。

<activity....>
<!-- Put this filter inside the activity you want to make the Home screen -->
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.HOME" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

注: 専用デバイスの電源がオンになったときにデバイスを自動的に起動する必要がある場合は、Android からバッテリーを取り外して、直接接続してみてください。これは確かにあなたの質問とは関係ありませんが、私の見方では、あなたのプロジェクトに役立つかもしれません.

于 2015-08-03T20:34:31.890 に答える
0

あなたのニーズには ACTION_BOOT_COMPLETED で十分です。ACTION_BOOT_COMPLETED が 3.0 以降のデバイスで動作するには、少なくとも 1 回はアプリケーションを手動で開始する必要があることに注意してください。

于 2015-08-03T20:42:01.433 に答える