
java.lang.SecurityException: Not allowed to start service Intent { act=com.google.android.c2dm.intent.REGISTER pkg=com.google.android.gms (has extras) } without permission com.google.android.c2dm.permission.RECEIVE
这个问题,简单地说,妳必须要装上谷歌服务框架才能使用谷歌的各个网络API。
今天在一部手机上测试一个使用了谷歌推送功能的软件时,遇到了这个问题。
这部手机是在我朝的陆地上出售的,因此厂商奉朝廷指令去掉了谷歌相关的软件。买到手之后就根过了,不过没装google play.这次为了测试软件,就装上了 google play store 和 google play服务 两个软件包。
然后就是测试自己的这个软件了,结果当软件运行到要向谷歌服务器注册以便接收消息推送时,就报告了标题中所说的致命错误,然后退出了。
搜索了谷歌,有几个洋鬼子也遇到了这种问题,但是没有解决。当本座最终找到这个问题的原因之后,就知道了,洋鬼子找不到原因是正常的。
既然谷歌搜索找不到答案,本座就自己拿着手机折腾了。google play store也是需要使用到谷歌推送功能的,那就先看看它是否正常运行吧。一启动手机上的google play store,果然也立即出错退出了。
于是就去研究一下google play store闪退的问题。这个问题比较通俗,果然狠快找到原因了。
对于出厂时不带google play的手机,如果妳想自行安装上google play,需要手动安装3个软件包:
1. google play store
2.google play服务
3.google服务框架
本座只装了前面两个,没有装第三个,而第三个恰恰是google的一系列开放API的基础。当本座把第三个软件包也装上,添加了谷歌账号之后,自己的软件也正常运行起来了。对了,还要做点翻墙动作才能让手机连上谷歌服务器的,最简单的手段就是改hosts配置文件。
洋鬼子为什么找不到原因,因为他们的手机都是出厂就带google play的,可能根本就没想到世上还有不带google play的安卓手机,他们遇到的这个错误也只是用户报告回来的,自己根本就没办法重现。故意不带google play的手机,好像只有西朝鲜这个沦陷区才会有。
真不知道后世子孙看到我们这个朝代的历史时会是什么心情。
星川英智
未知美人
HxLauncher: Launch Android applications by voice commands