동작 확인함 (ANDROID 13)
boot receiver 생성후 아래와 같이 구현
package com.example.autoboot3 import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.util.Log import android.os.Build; import android.net.Uri class MyReceiver : BroadcastReceiver() { private fun startService(context: Context) { Log.d("ROYA", "ACTION_BOOT_COMPLETED try MainActivity::class.java") val launchIntent = Intent("com.xx.automotivebrowser") //package name if (launchIntent == null) { Log.d("ROYA", "BOOT brs failed.... not existed ") } else { Log.d("ROYA", "BOOT WORKED BRS try open obigo .... ") launchIntent!!.setAction(Intent.ACTION_MAIN); launchIntent!!.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) launchIntent!!.addCategory(Intent.CATEGORY_LAUNCHER); //launchIntent.setAction("cohttp://m.google.android.apps.chrome.Main") context.startActivity(launchIntent); } /* val appIntent = Intent(context, MainActivity::class.java) appIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //val url = "https://play.google.com/store/apps/details?id=net.daum.android.tistoryapp" //val appIntent = Intent(Intent.ACTION_VIEW, Uri.parse(url)) //val appIntent = context.packageManager.getLaunchIntentForPackage("com.google.android.youtube") //appIntent!!.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) //appIntent!!.setAction(Intent.ACTION_MAIN) context.startActivity(appIntent); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){ context.startForegroundService(appIntent) } else { context.startService(appIntent) } Log.d("ROYA", "ACTION_BOOT_COMPLETED try MainActivity::class.java end") } */ } override fun onReceive(context: Context, intent: Intent) { val action = intent?.action if (action.equals(Intent.ACTION_BOOT_COMPLETED)) { Log.d("ROYA", "ACTION_BOOT_COMPLETED START ") startService(context!!) Log.d("ROYA", "ACTION_BOOT_COMPLETED END ") } } } |
테스트를 위한 버튼이 있는 main activity
package com.example.autoboot3 import android.os.Bundle import android.util.Log import com.google.android.material.bottomnavigation.BottomNavigationView import androidx.appcompat.app.AppCompatActivity import androidx.navigation.findNavController import androidx.navigation.ui.AppBarConfiguration import androidx.navigation.ui.setupActionBarWithNavController import androidx.navigation.ui.setupWithNavController import com.example.autoboot3.databinding.ActivityMainBinding import android.os.Build; import android.content.Intent import android.widget.Button; class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) Log.d("ROYA", "onCreate ") binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) val navView: BottomNavigationView = binding.navView val navController = findNavController(R.id.nav_host_fragment_activity_main) // Passing each menu ID as a set of Ids because each // menu should be considered as top level destinations. val appBarConfiguration = AppBarConfiguration( setOf( R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications ) ) setupActionBarWithNavController(navController, appBarConfiguration) navView.setupWithNavController(navController) var my_btn : Button = findViewById<Button>(R.id.mybutton) my_btn.setOnClickListener { //START val launchIntent = Intent("com.XXX.automotivebrowser") if(launchIntent == null ) { Log.d("ROYA", "BOOT brs failed.... not existed ") } else { Log.d("ROYA", "BOOT WORKED BRS try open obigo .... ") launchIntent!!.setAction(Intent.ACTION_MAIN); launchIntent!!.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) launchIntent!!.addCategory(Intent.CATEGORY_LAUNCHER); //launchIntent.setAction("cohttp://m.google.android.apps.chrome.Main") startActivity(launchIntent); } } /* //START val launchIntent = Intent("com.obigo.automotivebrowser") if(launchIntent == null ) { Log.d("ROYA", "BOOT brs failed.... not existed ") return } Log.d("ROYA", "BOOT WORKED BRS try open obigo .... ") launchIntent!!.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) launchIntent.setAction("cohttp://m.google.android.apps.chrome.Main") startActivity(launchIntent); */ //END } } |