如果我只知道Service的ComponentName,是否有意图启动服务?以下代码片段可以获取所有正在运行的Services及其ComponentNames,但是如果我想绑定到Service,我需要一个Intent而不是ComponentName,那么如何获取Intent?顺便说一下,假设服务由另一个APP提供,并且不能由显式Intent启动。
ActivityManager activityManager = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo> serviceList = activityManager
.getRunningServices(Integer.MAX_VALUE);
for (int i = 0; i < serviceList.size(); i++) {
RunningServiceInfo serviceInfo = serviceList.get(i);
ComponentName name = serviceInfo.service;
... ... do something
}
答案 0 :(得分:0)
是的,您可以使用componentname和package name启动任何服务。
Intent intent=new Intent();
intent.setComponent(new ComponentName("service packagename", "service componentname"));
bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);
多数民众赞成......