Sách

Thứ Bảy, 10 tháng 4, 2021

Hàm mở task top khi sử dụng PiP


/**
* Bring up launcher task to front
*/
public static void navToLauncherTask(Context appContext) {
if (appContext != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
ActivityManager activityManager = (ActivityManager)
appContext.getSystemService(Context.ACTIVITY_SERVICE);
// iterate app tasks available and navigate to launcher task (browse task)
if (activityManager != null) {
final List<ActivityManager.AppTask> appTasks;
appTasks = activityManager.getAppTasks();
for (ActivityManager.AppTask task : appTasks) {
final Intent baseIntent = task.getTaskInfo().baseIntent;
final Set<String> categories = baseIntent.getCategories();
if (categories != null && categories.contains(Intent.CATEGORY_LAUNCHER)) {
task.moveToFront();
return;
}
}
}
}
}

/**
* Bring up launcher task to front
*/
fun FragmentActivity?.navToLauncherTask() {
if (this == null || this.isFinishing) return
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
val activityManager = (getSystemService(AppCompatActivity.ACTIVITY_SERVICE) as ActivityManager)
val appTasks = activityManager.appTasks
for (task in appTasks) {
val baseIntent = task.taskInfo.baseIntent
val categories = baseIntent.categories
if (categories != null && (categories.contains(Intent.CATEGORY_LAUNCHER)
|| categories.contains(Intent.CATEGORY_DEFAULT))) {
task.moveToFront()
return
}
}
}
}