Java 检查在android前台运行的特定程序包名称
我正在使用kioskJava 检查在android前台运行的特定程序包名称,java,c#,android,xamarin,xamarin.android,Java,C#,Android,Xamarin,Xamarin.android,我正在使用kioskxamarin.androidapp。 我需要知道我当前的前台应用程序是什么(PackageName) 试了一些样品,但没有用 --样本1 --样本3-- var am=\u context.GetSystemService(ActivityService).JavaCast 如果有人能至少给我一个理由,我很高兴。终于找到了答案 usagestastsmanager usm=(usagestastsmanager)this.getSystemService(“usagest
xamarin.android
app。
我需要知道我当前的前台应用程序是什么(PackageName)
试了一些样品,但没有用
--样本1
--样本3--
var am=\u context.GetSystemService(ActivityService).JavaCast
如果有人能至少给我一个理由,我很高兴。终于找到了答案
usagestastsmanager usm=(usagestastsmanager)this.getSystemService(“usagestats”);
长时间=System.currentTimeMillis();
List appList=usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,time-1000*1000,time);
if(appList!=null&&appList.size()>0){
SortedMap mySortedMap=newtreemap();
for(UsageStats UsageStats:appList){
mySortedMap.put(usageStats.getLastTimeUsed(),usageStats);
}
if(mySortedMap!=null&&!mySortedMap.isEmpty()){
currentApp=mySortedMap.get(mySortedMap.lastKey()).getPackageName();
}
}
你的目标是什么?Android Oreo 8.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;
}
}
}
}
ActivityManager activityManager = (ActivityManager)GetSystemService(Context.ActivityService);
var packageName = activityManager.RunningAppProcesses;
var am = _context.GetSystemService(ActivityService).JavaCast<ActivityManager>();
IList<ActivityManager.RunningTaskInfo> taskInfo = am.GetRunningTasks(5);
var componentInfo = taskInfo[0].TopActivity;
UsageStatsManager usm = (UsageStatsManager)this.getSystemService("usagestats");
long time = System.currentTimeMillis();
List<UsageStats> appList = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000*1000, time);
if (appList != null && appList.size() > 0) {
SortedMap<Long, UsageStats> mySortedMap = new TreeMap<Long, UsageStats>();
for (UsageStats usageStats : appList) {
mySortedMap.put(usageStats.getLastTimeUsed(), usageStats);
}
if (mySortedMap != null && !mySortedMap.isEmpty()) {
currentApp = mySortedMap.get(mySortedMap.lastKey()).getPackageName();
}
}