3

私の質問は、特に Samsung Galaxy Camera デバイスに関するものです。カスタマイズされたカメラ アプリケーションが付属しています。サムスンが独自に開発したと思います。このデバイスは、カメラ付きの電話ではなくカメラと見なすことができるため、起動完了後にユーザーをホーム画面に移動させる他のデバイスとは対照的に、起動時にカメラ アプリを起動することを決定したようです。

さて、私たちのシナリオでは、独自のカメラ インターフェイスを持つ独自のアプリケーションを搭載したデバイスを出荷します。アプリケーションをキオスク モードで実行することもできますが、ユーザーが日常業務に役立つ他のアプリも使用できるようにしたいと考えています。

したがって、理想的には、デバイスは起動完了後にホーム画面を開始する必要があります。その後、ユーザーは私たちのアプリまたは別のアプリを開始することを決定できます。ただし、これが不可能な場合は、ホーム画面ではなく起動時にアプリを起動しても問題ありません (ユーザーはホーム ボタンでホーム画面にアクセスするため)。

起動完了後にホーム画面を強制的に表示する機会が見当たらないので、デフォルトで独自のアプリケーションを起動しようとしました。それを実装するために、次のフィルターを使用してレシーバーを作成しました。

<intent-filter android:priority="1000">
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter> 

インテントを受け取ったら、アプリケーションのメイン アクティビティを開始します。

その結果、デバイスの起動後、Samsung のデフォルトのカメラ アプリが最初に起動します。メインのアクティビティと最も厄介な部分が表示されます: カメラ レンズが完全に拡張されます。この数秒後、アプリが自動的に起動します。

私の推測では、Samsung のカメラ アプリも boot-completed-event に反応します。アプリの起動を阻止できる可能性はありますか?

4

2 に答える 2

1

これは、複雑な方法ではありますが、DevicePolicyManager を使用してルート化することなく達成できると思います。アプリをデバイス管理者にし、カメラを無効にすると、組み込みのカメラ アプリは電源を入れても (カメラ ボタンを押しても) 起動しません。アプリが起動したら、カメラを再度有効にして楽しんでください。

私はコードを作成する機会がありませんでした (作成したらこの回答を更新します) が、Play ストアの DisableCameraDevice アプリを使用してある程度テストしました。このアプリのセットアップでは、起動時にカメラ アプリが起動せず、BOOT_COMPLETE を受信するアプリがホームスクリーン時間の数秒後に起動します。

また、カメラ ボタン イベントは停止しません (ただし、カメラ アプリは停止します) ので、これについても同じことができます (これは android:priority 値も無視しているようです)。

さらに先に進みたい場合は、CommonsWare で言及されている ACTION_MAIN、CATEGORY_HOME インテントにカメラ アプリを応答させ、それをホーム画面アプリとして永続的に選択することもできます。

ホーム/戻るボタンを表示しない全画面表示のアプリと組み合わせると、顧客に提供するフールプルーフ カメラとしてかなりうまくロックダウンされます。

于 2013-02-23T19:32:47.217 に答える