3

Android デバイスの起動後にユーザーが最初に表示する画面として表示したいアプリケーションがあります。現在、アプリケーションは をリッスンしandroid.intent.action.BOOT_COMPLETED、自動的に起動します (ここで説明されているように)。すべて順調です。

問題は、ほとんどの場合、アプリが起動する前にホーム画面が 1 秒間表示されることです。ランチャー アプリケーションを独自のものに置き換えることができることは承知していますが、私の目標は、ユーザーがカスタム ランチャーを選択するのを妨げることなく、この最初のウェルカム スクリーンを表示することです。(私は、ユーザーに画面を強制することの UX の問題を認識しています。現在、何が可能かを見ているところです。)

だから私の質問は:これを行う方法はありますか? おそらく、ホーム画面の最初の起動を中断するか、アプリが最初に表示されるようにするためですか? そうでない場合、起動時にこの画面のみを表示し、後でユーザーが選択したランチャーまたはホーム アプリケーションにリダイレクトするランチャー アプリを作成することは可能でしょうか? 私の予感は、カテゴリを受け取り、Intent.CATEGORY_LAUNCHER画面を表示するか (まだ表示されていない場合)、または実際のランチャーを開く別のインテントを送信しない場合です...これが可能かどうかはわかりません。

助けてください!

編集: たとえば、このアプリを使用すると同じ問題が発生します。ホーム画面の後に自動起動アプリが表示されます。

4

2 に答える 2

4

最後に解決策を見つけました。それは非常に簡単です。

AndroidManifest レシーバーに次の行を追加するだけです。

 <receiver android:name="com.dannywind.delphi.BootReceiver"
                  android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
           <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                 <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.HOME"/>
                <category android:name="android.intent.category.DEFAULT"/>
          </intent-filter>
        </receiver>

次にアプリを開くと、Android システムはアプリをホーム画面にするかどうか尋ねてきます。

それがうまくいくことを願っています。

于 2014-05-08T18:07:06.147 に答える
1

これらの 2 行を既存の起動アクティビティ (通常は MainActivity、intent-filter) に追加します。

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

次の例のようになります...

    <activity android:name=".MainActivity">
        <intent-filter>
            <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.LAUNCHER" />
        </intent-filter>
    </activity>
于 2021-05-03T23:06:27.780 に答える