タブレットの起動時にアプリを起動したいので、ユーザーがタブレットを起動したときにアプリの主なアクティビティが最初に表示されます。
LauncherActivityについて読みましたが、使い方がわかりません。
誰かがこれに関する提案、リンク、またはチュートリアルで私を助けることができますか?
LauncherActivityは最良の方法ですか、それとも代替手段がありますか?
4 に答える
これらのコード行はあなたに役立つかもしれません...
ステップ1:AndroidManifest.xmlで権限を設定します
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
ステップ2:このインテントフィルターをレシーバーに追加する
<receiver android:name=".BootReceiver">
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
onReceive
ステップ3:これで、Receiverクラスのメソッドからアプリケーションの最初のアクティビティを開始できます
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent myIntent = new Intent(context, MainActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(myIntent);
}
}
タブレットの起動時にアプリを起動する場合は、BOOT_COMPLETEDアクションをリッスンし、それに反応する必要があります。BOOT_COMPLETEDは、システムの起動が完了した後に1回ブロードキャストされるブロードキャストアクションです。BroadcastReceiverを作成すると、このアクションを聞くことができます。BroadcastReceiverは、BOOT_COMPLETEDアクションでインテントを受信したときに起動アクティビティを開始します。
マニフェストに次の権限を追加します。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
プロジェクトにカスタムBroadcastReceiverを作成します。
public class MyBroadCastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
Intent i = new Intent(context, MyActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
}
次に、BroadCastReceiverをマニフェストに追加してマニフェストファイルを変更します。
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
@visheshチャンドラによる答えは正しいです。ただし、一部のデバイスでは、アプリがデフォルトで外部ストレージにインストールされているため、機能しません。必ず指定してください
android:installLocation="internalOnly"
そうしないと、アプリがSDカードにインストールされている場合、ブート完了アクションを受け取りません。これをmanifest.xmlファイルのアプリケーションタグに追加すると、機能します。
使用法:
<application
android:name=".Data.ApplicationData"
android:allowBackup="true"
android:hardwareAccelerated="true"
android:icon="@mipmap/ic_launcher"
android:installLocation="internalOnly"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen">
<!--activities, services...-->
</application>