Я работаю над приложением киоска xamarin.android
.Мне нужно знать, каково мое текущее приложение переднего плана (PackageName)
.
, пробовал несколько образцов, но безрезультатно.
- пример 1 -
ActivityManager activityManager = (ActivityManager)BaseContext.GetSystemService(ActivityService);
List<ActivityManager.RunningAppProcessInfo> runningProcesses = activityManager.RunningAppProcesses.ToList();
foreach (ActivityManager.RunningAppProcessInfo processInfo in runningProcesses)
{
if (processInfo.Importance == Android.App.Importance.Foreground)
{
foreach (String activeProcess in processInfo.PkgList)
{
if (activeProcess.Equals(_context.PackageName))
{
return true;
}
}
}
}
-пример 2 -
ActivityManager activityManager = (ActivityManager)GetSystemService(Context.ActivityService);
var packageName = activityManager.RunningAppProcesses;
- пример 3 -
var am = _context.GetSystemService(ActivityService).JavaCast<ActivityManager>();
IList<ActivityManager.RunningTaskInfo> taskInfo = am.GetRunningTasks(5);
var componentInfo = taskInfo[0].TopActivity;
Я называю эти коды в OnPause()
, но все они возвращают только мою задачу (my package name)
.
Я также последовал этому примеру найти приложение, работающее на переднем плане из службы
Я очень рад, если кто-нибудь может дать мне хотя бы причину.