5

私はストックカーホームアプリの交換に少し取り組んでいますが、電話がドッキングされるたびにアプリがフォアグラウンドに戻されるように、ホームボタンをオーバーライドする方法に完全に困惑しています。これがカーホームの仕組みなので、方法が必要です。

ホームボタンが押されるたびにブロードキャストされるインテントにより、デフォルトのホームスクリーンアプリが起動するため、BroadcastReceiversは機能しないようです。防ぐことはできません。アプリ内からホームボタンを上書きすることはできますが、ユーザーがアプリの外部にいるときにこれが機能する必要があるため、それは役に立ちません。Car Homeは、実行中にデフォルトのホームスクリーンアプリとして自分自身を設定するような奇妙なこともしません(logcatをチェックして確認しました)。

私はこれで壁に頭をぶつけてきました。誰かアイデアがありますか、少なくとも私を正しい方向に向けることができますか?

4

4 に答える 4

9

さて、何ヶ月も経って、私はついにこの質問に対する答えを見つけました。キーは、ここにある「android.dock_home」メタデータ要素です。

http://developer.android.com/reference/android/content/Intent.html#METADATA_DOCK_HOME

これをAndroidManifest.xmlで使用することにより、ドックアプリケーションを一時的にホームアプリケーションにすることができます。これを行うには、ドックアプリアクティビティのActivityタグ内のAndroidManifest.xmlに次の行を追加します。

<meta-data android:name="android.dock_home" android:value="true" />

値がtrueに設定されている場合、電話がドッキングされている限り、ホームボタンはドックアプリに戻ります。ドッキングを解除すると、[ホーム]ボタンをクリックして通常のホームアプリに戻ります。

于 2010-08-25T14:02:55.837 に答える
2

残念ながら、パブリックAPIには、ユーザーが確認せずにホームボタンをオーバーライドする方法はありません。

最善の策は、CATEGORY_HOMEインテントを実装することです。つまり、ユーザーが[ホーム]を押すと、標準のホームまたはあなたのホームを実行し、必要に応じてあなたのホームをデフォルトにするオプションが表示されます。

アプリケーションが起動したら、電話がドッキングされているかどうかを確認できます。電話がドッキングされていない場合は、標準のホーム画面を開いて、何かが表示される前にアプリを閉じることができます。

于 2010-05-19T06:13:27.263 に答える
2

電話をドッキングしたときにアプリが自動的に起動するように、マニフェストのインテントフィルターを修正する必要があります。詳細については、 http://developer.android.com/reference/android/content/Intent.html#CATEGORY_CAR_DOCKを参照してください。

于 2010-05-19T14:57:20.940 に答える
0

HOMEキーに取り組む方法を見つけました。アプリケーションの場合、マニフェストを次のように設定します

<action android:name="android.intent.action.MAIN" />                              
<category android:name="android.intent.category.HOME" />                                
<category android:name="android.intent.category.DEFAULT" />                            
<category android:name="android.intent.category.MONKEY"/> 

これで、urアプリケーションは代替のLauncherアプリケーションになります。

adbを使用し、パッケージマネージャーを使用してランチャーアプリケーションを無効にします

pmはcom.android.launcher2を無効にします。

これで、ホームキーを押すと常に同じ画面が表示されます。

于 2010-12-27T11:54:13.413 に答える