这个警告是由我的应用引起的吗? – “使用startService的隐式意图不安全”

我在开发时在Logcat中收到此警告。 它是由我的应用程序引起的吗?

16699-16699 / tld.me.myapp.debug W / ContextImpl:使用startService的隐式意图不安全:Intent {act = com.google.android.location.internal.GoogleLocationManagerService.START} android.content.ContextWrapper.bindService:517 com.google.android.gms.internal.va:-1 com.google.android.gms.internal.u.connect:-1

我无法在我的代码中看到我可能导致这种情况的原因。

http://developer.android.com/reference/android/content/Intent.html

意图解决方案

您将使用两种主要forms的意图。

Explicit Intents指定了一个组件(通过setComponent(ComponentName)或setClass(Context,Class)),它提供了要运行的确切类。 通常这些不包括任何其他信息,仅仅是应用程序在用户与应用程序交互时启动其具有的各种内部活动的方式。 隐式意图没有指定组件; 相反,它们必须包含足够的信息以供系统确定哪个可用组件最适合该意图运行。 当使用隐式意图时,给定这样一个任意意图我们需要知道如何处理它。 这由Intent解析过程处理,该过程将Intent映射到可以处理它的Activity,BroadcastReceiver或Service(有时是两个或多个活动/接收器)。

可能是它明确提到组件的说法。

我遇到了完全相同的问题,似乎在Google Play服务库中,他们错过了在他们的声明中输入android:exported="true"

在Android 5.0之前,它被允许以隐式意图启动服务,但现在它不可能,而不是有警告,你将有一个例外。

他们需要修理他们的东西。

在您尝试访问的服务中设置filter时,必须将导出的“false”导出:“true”。 如下: