我在做售货亭
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)
。
我也遵循了这个例子
find application running in foreground from service
如果有人能给我一个理由,我很高兴。