タブレットの起動時にアプリを起動して、タブレットの起動時にユーザーが最初に目にするのはアプリのメインアクティビティであるようにします。
LauncherActivityについて読んだことがありますが、使用方法がわかりません。
この点についての提案、リンク、またはチュートリアルを教えてください。
LauncherActivityは最良の方法ですか、それとも代替手段がありますか?
これらのコード行はあなたに役立つかもしれません...
ステップ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>
ステップ3:これで、ReceiverクラスのonReceive
メソッドからアプリケーションの最初のアクティビティを開始できます
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は、システムの起動が完了した後に一度ブロードキャストされるブロードキャストアクションです。このアクションをリッスンするには、 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 chandraによる回答は正しいです。ただし、アプリはデフォルトで外部ストレージにインストールされているため、一部のデバイスでは機能しません。必ず指定してください
Android:installLocation="internalOnly"
そうしないと、アプリがSDカードにインストールされている場合、ブート完了アクションを受信できません。これをmanifest.xmlファイルのapplicationタグに追加すると、機能します。
使用法:
<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>