我想编写一个监视应用程序,监视另一个应用程序并将其唤醒,如果它不活着的话。
有没有办法唤醒另一个没有特定集成的应用?也许在另一个应用程序上唤醒一些服务?
**醒来后我的意思是其他应用程序开始运行但没有明确显示任何UI。例如,录音机可能会唤醒并在后台工作。它的主要观点不应该显示。
答案 0 :(得分:0)
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.package.address");
startActivity(LaunchIntent);
答案 1 :(得分:0)
或者您可以使用:
Intent intent = new Intent("android.intent.action.MAIN");
intent.setComponent(ComponentName.unflattenFromString("com.google.android.maps.mytracks/com.google.android.apps.mytracks.MyTracks"));
intent.addCategory("android.intent.category.LAUNCHER");
startActivity(intent);
答案 2 :(得分:0)
这样可以试一试
PackageManager pm = getActivity().getPackageManager();
Intent intent = pm.getLaunchIntentForPackage("package_name");//for e.g.(com.android.sms)//but this app must be in your device
startActivity(intent);
答案 3 :(得分:0)
如果你想跟踪一个在后台运行而没有用户干扰的应用程序(在这种情况下我假设它在后台使用服务),我们可以通过以下代码跟踪它。
private boolean isOurServiceRunning(Context context) {
ActivityManager manager = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo> listinfo = manager
.getRunningServices(Integer.MAX_VALUE);
Iterator<ActivityManager.RunningServiceInfo> iterator = listinfo
.iterator();
while (iterator.hasNext()) {
ActivityManager.RunningServiceInfo info = iterator.next();
if (info.service
.getClassName()
.equals("<your service with fullpackage name>"))
return true;
}
return false;
}
答案 4 :(得分:0)
从代码中撤销另一个应用程序就足够了。
Intent intent;
PackageManager manager = getPackageManager();
try {
intent = manager.getLaunchIntentForPackage("com.mycompany.myapp");
if (intent == null)
throw new PackageManager.NameNotFoundException();
intent.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(intent);
}