第一步: 新建跳转到设置页面的弹窗
fun initSetDialog() {
if (dialog != null && dialog!!.isShowing) {
return
}
dialog = showSetDialog("",
"是否开启应用自启动",
"开启",
"放弃",
DialogInterface.OnClickListener { dialog, which ->
SharedPreferUtil.saveSharedValue("isSet", true)
goSetting()
},
DialogInterface.OnClickListener { dialog, which -> dialog.dismiss() })
dialog?.show()
}
fun goSetting() {
var componentName: ComponentName? = null
val sdkVersion = Build.VERSION.SDK_INT
try {
val intent = Intent()
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
//跳自启动管理
if (sdkVersion >= 28) {//9:已测试
componentName =
ComponentName.unflattenFromString("com.huawei.systemmanager/.startupmgr.ui.StartupNormalAppListActivity")//跳自启动管理
} else if (sdkVersion >= 26) {//8:已测试
componentName =
ComponentName.unflattenFromString("com.huawei.systemmanager/.appcontrol.activity.StartupAppControlActivity")
} else if (sdkVersion >= 23) {//7.6:已测试
componentName =
ComponentName.unflattenFromString("com.huawei.systemmanager/.startupmgr.ui.StartupNormalAppListActivity")
} else if (sdkVersion >= 21) {//5
componentName =
ComponentName.unflattenFromString("com.huawei.systemmanager/com.huawei.permissionmanager.ui.MainActivity")
}
//componentName = new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.optimize.process.ProtectActivity");//锁屏清理
intent.component = componentName
startActivity(intent)
} catch (e: Exception) {
//跳转失败
}
}
@SuppressLint("CheckResult")
fun getPermissions() {
rxPermissions = RxPermissions(this)
rxPermissions.request(
Manifest.permission.WRITE_EXTERNAL_STORAGE
).subscribe {
if (it) {
if (!SharedPreferUtil.getSharedValue("isSet", false)) {
initSetDialog()
}else {
MainNewActivity.APIs.actionStart(this@WelcomeActivity)
}
} else {
return@subscribe
}
}
}
override fun onResume() {
super.onResume()
if (SharedPreferUtil.getSharedValue("isSet", false)) {
finish()
MainNewActivity.APIs.actionStart(this@WelcomeActivity)
}
}
fun showSetDialog(
title: String,
message: String,
confirmText: String,
cancelText: String,
confirmListener: DialogInterface.OnClickListener,
cancelListener: DialogInterface.OnClickListener
): Dialog {
val builder = AlertDialog.Builder(this)
builder.setTitle(title)
builder.setMessage(message)
builder.setPositiveButton(confirmText, confirmListener)
builder.setNegativeButton(cancelText, cancelListener)
val dialog = builder.create()
dialog.window!!.setGravity(Gravity.CENTER)
return dialog
}
第二步:创建开机自启的接收器
class LaunchRecevier : BroadcastReceiver() {
private val ACTION = "android.intent.action.BOOT_COMPLETED"
override fun onReceive(context: Context, intent: Intent) {
if (intent.action == ACTION) {
val myIntent = Intent(context, WelcomeActivity::class.java)
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
context.startActivity(myIntent)
}else {
println("开机自启---")
}
}
}
第三:在清单文件里面注册
<receiver android:name=".receiver.LaunchRecevier">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
<intent-filter >
<action android:name="android.intent.action.MEDIA_MOUNTED"/>
<action android:name="android.intent.action.MEDIA_UNMOUNTED"/>
<data android:scheme="file">
</data>
</intent-filter>
</receiver>







网友评论