我正在使用以下代码来检测当前正在运行的应用程序。但是当我运行任何新应用程序时。我没有得到它的包名,它正在为“com.hedy.launcher”干杯。 代码有什么问题?
@Override
public int onStartCommand(Intent intent,int flags, int startId) {
// TODO Auto-generated method stub
super.onStartCommand(intent, flags,startId);
Toast.makeText(this, "Service running", Toast.LENGTH_SHORT).show();
handler = new Handler(){
@Override
public void handleMessage(Message msg)
{
// TODO Auto-generated method stub
super.handleMessage(msg);
// count=count+1;
// Toast.makeText(MyService.this, ""+count, Toast.LENGTH_SHORT).show();
ActivityManager am = (ActivityManager) getApplicationContext().getSystemService(Activity.ACTIVITY_SERVICE);
String packageName = am.getRunningTasks(1).get(0).topActivity.getPackageName();
Toast.makeText(MyService.this, ""+packageName, Toast.LENGTH_SHORT).show();
}
};
new Thread(new Runnable(){
public void run() {
// TODO Auto-generated method stub
while(true)
{
try {
Thread.sleep(1000);
handler.sendEmptyMessage(0);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}).start();
return 0;
}
最佳答案
String packageName = am.getRunningTasks(1).get(0).topActivity.getPackageName();
这是您提取包名称的行。 尝试增加 maxNum 参数(您已设置为 1)。
am.getRunningTasks(maxNum) 将返回一个数组列表。检查 arraylist 的所有内容,看看你是否在其中的任何一个中得到了你需要的项目
关于android - 检测当前正在运行的应用程序。安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16076791/