- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用 Google 的 Activity 识别服务。几天前,一切都很顺利,即我可以连接使用该服务来获取 Activity 信息。但是今天我发现我再也收不到了。查看日志后,我发现了这个错误:
05-15 21:19:27.196: W/ActivityManager(765): Permission Denial: Accessing service
ComponentInfo{edu.umich.si.inteco.captureprobe/edu.umich.si.inteco.captureprobe.
contextmanager.ActivityRecognitionService} from pid=-1, uid=10220 that is not exported
from uid 10223
我重新启动了手机,然后它再次工作了。但是,在我重新安装应用程序后,同样的问题又出现了。谁能指出“真正的”问题是什么?它与“pid=-1”有关吗?我在 Manifest 文件中有权限
<uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION"/>
我在谷歌上寻找答案,但大多数问题是他们没有在 list 文件中放置权限。在我看来,这只是一个不同的问题......有人可以帮助我吗?谢谢!
更新:这个问题总是可以通过重启手机来解决。但是,当我卸载应用程序并通过 Eclipse 重新安装它时,它总是会重新出现。一致但奇怪的模式(至少对我而言)。我想知道手机是否记住了该应用程序并在我卸载它后停止它访问 Google Play 服务(或者由于某种原因 Google Play 服务不允许我的应用程序访问它)。有什么想法吗?
最佳答案
我找到了解决方案。原因是由于两件事的结合:
重新安装会生成同一应用程序的新的不同 uid(注意,重新安装是指从手机上卸载该应用程序,然后使用 Eclipse 重新安装)。
<默认情况下,在服务标签中,“exported”的值为 false,如 here 所述
其他应用程序的组件是否可以调用该服务或与之交互 — 如果可以,则为“true”,否则为“false”。当该值为“false”时,只有同一应用程序的组件或具有相同用户 ID 的应用程序才能启动该服务或与之绑定(bind)。默认值取决于服务是否包含 Intent 过滤器。没有任何过滤器意味着它只能通过指定其确切的类名来调用。这意味着该服务仅供应用程序内部使用(因为其他人不知道类名)。所以在这种情况下,默认值为“false”。另一方面,至少一个过滤器的存在意味着该服务供外部使用,因此默认值为“true”。
因此,我只需将标志设置为“true”就解决了我的问题。 (Google Activity Recognition 的示例代码使用值“false”而不是“true”。)
<service
android:name="edu.umich.si.inteco.captureprobe.contextmanager.ActivityRecognitionService"
android:enabled="true"
android:exported="true"
>
</service>
有趣的是,相同的代码适用于 Android 4.3 或更低版本。我在四款不同Android版本的手机上测试了我的代码,卸载/重装问题只出现在Android 4.4的手机上。所以这就是为什么我一直对这个问题感到困惑。为什么以前没有发生过?无论如何,如果您遇到相同的问题(即相同的应用程序在您重新安装后无法使用服务),请检查“已导出”标志。
关于android - 权限拒绝 : Accessing service ComponentInfo {. ..} 来自 pid=-1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23691302/
我正在尝试为 Android 设置 JUnit 测试并且我有 list 等设置但我不断收到此错误: java.lang.RuntimeException: Unable to instantiate
我的问题是当我运行应用程序并单击注册按钮时突然显示弹出窗口:“强制关闭” 这是我的代码: Main.java package com.example.server; import java.util.
当我运行我的 Activity registeration.java 或 login.java 时,它将 Intent 中的用户名传递给名为 profile.java 的新 Activity > 关于
这个问题已经有答案了: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo (47 个回答) 已关闭 8
以下 Android Studio 1.5 MainActivity.java 代码会在标题中生成错误,并带有 You need to use a Theme.AppCompat theme publ
尝试从文本消息 URL 在 Android 上启动 Xamarin 表单应用程序时,我收到此错误。我一直在遵循 THIS 中提到的步骤文章。 这里是我 AppManifest.xml 中的应用程序节点
我在我的应用程序中创建了一个 map View ,但出现了这个错误: 09-07 21:24:08.886: INFO/ActivityManager(243): Starting: Intent {
我的应用程序运行正常,但当应用程序进入后台时,它在应该恢复时崩溃了。正如您在源代码中看到的那样,我记录了 onStart、onStop 等事件。 在我的日志中,当我启动应用程序时,我可以看到 onSt
我正在处理从其他人那里导入的 Android 项目。我已经对所有依赖项进行排序,项目中没有错误,但是当我尝试启动它时,我得到: 04-08 16:49:41.761: E/AndroidRuntime
在我的应用程序中,当我选择按钮时,它会将我指向 mapView 类,它会显示用户的当前位置。 但是,它抛出 java.lang.RuntimeException: Unable to instanti
我在开发 Android 应用程序时遇到问题。我首先对我的错误进行了研究,然后发现还有其他人和我有同样的问题。我阅读了所有评论并尝试了所有方法,但我仍然遇到同样的错误。 这里是我的错误 05-29 1
我有一个 Google 云消息的接收器,它已在 AndroidManifest.xml 中注册:
我正在开发一个应用程序,最低版本为 Froyo,目标版本为 Gingerbread。因此, list 显示: 我有一个模拟器和一个带有 Gingerbread 的 Nexus One,应用程序部署和
我正在尝试将其作为我的主要 Activity 以打开另一个 Activity (ListAtivity)。但是,当我单击按钮时,应用程序崩溃并出现以下异常: 01-26 17:12:58.341: E
我正在制作一个可以搜索表“员工”并返回结果的应用程序。我正在使用 searchdialog 进行搜索。但是我在搜索对话框上按下搜索按钮时得到了 FC。请帮帮我。 代码: public class Si
我是 Android 开发的新手,所以我确信这会变成我错过的愚蠢的事情,但我有两个 Activity :StartScreen 和 Map。 StartScreen 只是简单的文本和一个按钮,然后应该
我修改了来自 http://www.elektor.com/magazines/2012/march/android-switch-interface.2084156.lynkx 的示例蓝牙通信应用程
我创建了一个应用程序,该应用程序应该从我的Thingspeak channel 接收数据。 首先,我只是使用了webview小部件,但我想走得更远,并使用Thingspeak Java api自己处理
可以找到 list 文件here . 可以找到DeviceAdminReceiver类here agent_device_xml 定义如下:
01-05 18:35:42.754: E/AndroidRuntime(5814): java.lang.RuntimeException: 无法实例化 Activity ComponentInfo
我是一名优秀的程序员,十分优秀!