今天在做AIDL的时候,碰到这么一个异常:
java.lang.IllegalArgumentException: Service Intent must be explicit
翻译过来就是——非法参数异常:服务意图必须是明确的。
这个异常在5.0之前是没有的,估计是为了安全考虑。既然异常提示为服务意图必须是明确的,那么就设置为明确的,之前的代码为:
public void onReceive(Context context, Intent intent) {
Intent serviceIntent = new Intent();
serviceIntent.setAction("com.duk3r.eortologio2.MyService");
context.startService(serviceIntent);
}
改为如下代码即可:
Intent serviceIntent = new Intent(context,MyService.class);
context.startService(serviceIntent);
或者:
Intent bi = new Intent("com.duk3r.eortologio2.MyService");
bi.setPackage("com.duk3r.eortologio2");
问题得到解决。