faded的mv什么故事怎么火起来的

问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
在Google Cloud Messaging(GCM)中,需要在AndroidManifest文件中添加下面的权限声明,小米推送和个推也有类似的做法,有什么原理吗?
&permission android:name="&your-package-name&.permission.C2D_MESSAGE" android:protectionLevel="signature" /&
&uses-permission android:name="&your-package-name&.permission.C2D_MESSAGE" /&
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
gcm在天朝不会撞墙么,你是怎么用的
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
这些权限属于自定义权限,为了应用间互相访问调用的安全性。应用A定义权限声明permission,应用B想和应用A交互,得声明使用A声明的特定权限,即uses-permission。android:protectionLevel="signature"表示具有权限的同时,必须是互访的应用要具有相同的应用签名才能互访。
同步到新浪微博
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 AppAndroid系统使用谷歌官方GCM推送指南 - 简书
Android系统使用谷歌官方GCM推送指南
本文旨在为所有Android系统手机普通用户提供使用谷歌GCM推送的教程,注意这不是用于开发者的。虽名为指南,但多少是探索性的,因为一些细节笔者尚未搞清楚,希望各位指正。由于大部分国内应用没有使用GCM推送服务,那么如果你手机里的应用几乎没有使用GCM服务的应用,那么即使打通GCM也是没有意义的。本文的适用者是使用了一些依靠GCM服务给用户推送消息和通知的应用的Android手机用户。那么哪些应用是依靠GCM服务的?一般面向国际市场的应用使用了GCM,比如Facebook、Twitter这样的社交应用,CNN、BBC这样的新闻应用,Outlook这样的工具应用,等等。较常用的判定应用是否使用了GCM的方法是安装一个安卓工具类应用“绿色守护”,该应用中会对使用GCM服务的应用作一个标识。
显示蓝色GCM标识的即为依靠GCM推送消息的应用。部分国内应用也有GCM,比如网易系。微信也有GCM,但在国内主要通过驻留后台。铁路12306也有GCM,但只是挂羊头卖狗肉。
为了对部分小白友好,在此之前,我要对GCM作一个简要介绍。一、什么是GCM?GCM,全称为Google Cloud Messaging,译为Google云端通讯。它能够让第三方应用的开发者把通知消息或信息从服务器发送到所有使用这个应用的安卓系统或Chrome浏览器的应用或拓展上。大部分国内应用没有使用GCM服务,而大量国外应用使用了GCM服务。那么,我们Android系统上的应用又是如何在没有使用GCM服务的情况下把消息推送给我们的呢?有三种情况。第一种情况是像QQ、微信这样的应用,它们长期驻留在系统后台,长期占用一部分内存来推送消息。也就是说,虽然你以为你关闭了QQ和微信,但其实这一部分执行推送任务的QQ和微信模块仍在后台工作。第二种情况是使用第三方推送服务,这是谷歌服务在国内运行情况不佳的产物,第三方推送服务在国内有多家,是在第三方应用中加注SDK实现,但在不同的ROM中不同的第三方推送能否按时送到则参差不齐。第三种情况则是使用了GCM服务的应用,主要是大量的来自国外的应用和少部分来自国内的应用,比如Facebook、Twitter、CNN、BBC,与第三方推送服务不同的是,它是系统层级的,第三方应用的服务器把消息发送给谷歌的服务器再转接到各个用户。IOS、Windows 10系统的消息推送亦是在应用未运行的情况下由第三方服务器转给苹果或微软的服务器,再推送给用户。二、为什么要使用GCM?一个系统,理应只有一套主要的推送模式。IOS如此,Windows 10如此,Android也应如此。实际上Android确实只有一套推送模式,但那是在国外。由于谷歌被迫退出了中国大陆,以及相关服务遭到GFW的封锁,同时谷歌的Android系统却又在国内大行其道,Android原生态的谷歌服务难以使用,这就使得Android在国内的碎片化极其严重,严重影响了用户的使用体验。对于用户而言,使用GCM服务的好处有:(1)充分利用依靠GCM服务的应用,快捷地获取消息、资讯和通知,比如即时获得CNN、BBC的突发新闻推送;(2)突破网络防火长城GFW的封锁,即时在未翻墙的情况下也能获得遭到GFW封锁的应用的通知,比如Facebook、Twitter的通知,Messenger、Line的消息;(3)不需要打开这些应用就可以获取通知,节约内存、节省电量。(4)完整Android系统的体验。
克制Android系统使用体验碎片化的问题。三、如何使用GCM?接下来进入本文的重点,再次声明,这只是本人的经验性总结,一些细节我还尚未弄清楚,如果您愿意的话,可以在实际操作中与我一起完善走向GCM之路。目前,使用GCM服务无需翻墙。笔者在中国联通数据网络状态下可以正常连接上Google Play服务,大部分Wi-Fi环境下也能连接,但在某些Wi-Fi之下无法连接。如果要保证GCM的全天候连接,且又不至于需要用翻墙软件那么繁琐,可以尝试修改hosts文件。推荐hosts文件自动修改和更新的app:。不过修改hosts文件需要对手机进行ROOT。第一步,安装谷歌服务。可在各大应用商店搜索谷歌安装器应用,下载安装后按照指示做即可。如果手机里已经有谷歌服务框架,则无视本条。尽量保持谷歌服务为最新版本。推荐谷歌安装器下载地址:第二步,将安装好的谷歌服务,包括Google服务框架、Google账户管理、Google Play服务和Play商店授予所有权限,并允许开机自启。如MIUI系统手机的设置位置在“安全中心”应用里的“授权管理”中。第三步,拨号盘输入“*#*#426#*#*”,进入Google Play服务,在第四个按钮STATUS/EVENTS中可查看目前是否连接上以及连接日志。如果是not connected即是未连接上,connecting即正在连接,出现connected并且在DeviceID后面出现一串数字后即表示连接成功。如果显示not connected,点击第二个选项connect进行连接。
Google Play服务
注意通知栏里的10:55时BBC推送的新闻,这是由GCM推送的
注意看10:55,这说明一次推送任务完成了
第四步,确保出现connected并且在Device ID后面出现一串数字,如果使用的Wi-Fi网络不能连接,则使用数据网络试试。根据笔者经验,第一次连接可能会比较困难,但第一次连接上之后就没有问题了(如果始终不能连接,请修改hosts文件或使用翻墙软件,方法参见延伸阅读中笔者的另一篇指南。注意,修改hosts文件需要ROOT,但是有的机型难以ROOT,有的机型ROOT之后依然无法修改hosts文件,还需要解锁System分区)。第五步,如果要开启某一个应用的GCM推送,确保它被允许开机自启。第六步,打开你需要开启GCM的应用,在应用的设置中找到消息推送按钮,确保它已经打开。可尝试关闭,再重新打开。第七步(可选),修改GCM的心跳间隔为5分钟,以保证推送的时效性。通过一个应用即可一键完成。至此,我们能够做的就已经完成了。应用的GCM推送可能很快就会开始,也可能过一段时间,也许是几天之后,但也许有的永远也没有推送。欢迎各位一起使用GCM服务,诚挚地希望大家对本文提出意见。如果遇到问题,可在评论里直接提出。
一个明远湖畔散步者的梦。最近在网上查了关于很多消息推送的资料,其中主要有四种方法。
1)&使用服务() 2)&使用协议() 3)&使用协议 4)&使用轮循方式
以上这四种方法的优缺点大家都可以到网上搜到,这里提供一个参考的连接:&&在这里我将使用GCM服务()来实现Android消息的推送。 注:本人已实现该推送功能,不过有些限制条件。
实现该推送功能的必备条件: 1)你的SDK需要从SDK Manager里安装Google Cloud Messaging for Android Library,安装步骤:启动SDK Manager-&Extras-&勾选Google Cloud Messaging for Android Library这一项,然后安装就可以了。 2)你用来调试的模拟器或是真机必须支持Google APIs,比如说你用模拟器调试的话,在新建模拟器的时候&target&这一项要选择Google APIs,版本要高于2.2。 3)gcm.jar文件,等你执行完第一步的时候,你就可以在你的Android SDK目录下的extras\google\gcm\samples\gcm-demo-client\libs目录里找到这个文件,把它复制到你的项目的libs目录下,并添加路径。 4)你的模拟器或是真机必须设置并且登入一个google账户,比如你在调试的时候出现ACCOUNT_MISSING错误提示,说明就是没有登入google的帐号。 5)你的耐心。。。。。。 6)如果前面五点你都具备了,请往下看.......
下面我将一一介绍我实现的步骤: 1.&注册用户,得到Project&Number和APP&key,Project&Number就是我们在后面编程时候所要用到的。开启服务。
a)&注册完后点击左侧的后,我们在右边就可以看到,如上图。
b)&同样,我们点击左边的就可以看到,如上图红线的地方;如果你没有,你可以点击红线部分的&&来创建一个。
c) 其次我们要开启Google Cloud Messaging for Android服务,点击页面左边的&Services&,在右边的下面我们就可以找到Google Cloud Messaging for Android项,开启它。如下图。
2.现在我们就要建立自己的服务器了(PS:别听到服务器就害怕,这里只是建立一个小小的网站式服务器)。官网有两种方式简历服务器,我采用的是App Engine for Java这个方法,具体可以参考:。 &这里我讲讲我是怎用App Engine for Java建立发送消息的服务器的。APP Engine for Java的下载地址:& a)在你安装Google Cloud Messaging for Android Library后,你的Android SDK目录下有一个extras/google/目录,其中包含的目录有gcm-client, gcm-server, samples/gcm-demo-client, samples/gcm-demo-server和samples/gcm-demo-appengine. b)进入samples/gcm-demo-appengine/src/com/google/android/gcm/demo/server/这个目录,找到ApiKeyInitializer.java这个文件,用文本编辑器打开,找到replace_this_text_by_your_Simple_API_Access_key这句话,并用你的注册时得到的APP key替换它,保存。 c)打开dos窗口,开始-&运行,在dos窗口下进入&samples/gcm-demo-appengine目录,在dos中输入ant -Dsdk.dir=D:\appengine-java-sdk runserver -Dserver.host=192.168.1.10 注:这里的-Dsdk.dir=D:\appengine-java-sdk要根据自己的实际情况来,-Dsdk.dir就是你存放appengine-java-sdk的目录,而-Dserver.host就是你自己电脑的IP。 d)以上步骤你都没出错的话,就可以打开浏览器输入:http://192.168.1.10:8080/home如果出现的界面和一下的图片一样说明你已经配置成功,可以开始写Android的客户端了。
3.下面我们可以开始着手写Android的客户端程序了,在文章的最后我会提供源码的下载地址。
a)根据官网,我们可以知道首先要给程序添加依稀权限。添加权限大家可以参考:
&android:minSdkVersion="8"&android:targetSdkVersion="xx"&&
&android:name="my_app_package.permission.C2D_MESSAGE"&android:protectionLevel="signature"&&&
&android:name="my_app_package.permission.C2D_MESSAGE"&&&&
&android:name="com.google.android.c2dm.permission.RECEIVE"&&&
&android:name="android.permission.INTERNET"&&&&
&android:name="android.permission.GET_ACCOUNTS"&&&
&android:name="android.permission.WAKE_LOCK"&&&
&android:name="com.google.android.gcm.GCMBroadcastReceiver"&android:permission="com.google.android.c2dm.permission.SEND"&&&
&&&&&android:name="com.google.android.c2dm.intent.RECEIVE"&&&
&&&&&android:name="com.google.android.c2dm.intent.REGISTRATION"&&&
&&&&&android:name="my_app_package"&&&
&android:name=".GCMIntentService"&&&
b)完成类GCMIntentService的编写,该类必须继承GCMBaseIntentService,在这里我们需要完成的方法有: --onRegistered(Context context, String regId) --onUnregistered(Context context, String regId) --onMessage(Context context, Intent intent) --onError(Context context, String errorId) --onRecoverableError(Context context, String errorId) 在onCreate方法里我们需要添加以下语句:
GCMRegistrar.checkDevice(this);&&
GCMRegistrar.checkManifest(this);&&
final&String&regId&=&GCMRegistrar.getRegistrationId(this);&&
if&(regId.equals(""))&{&&
&&GCMRegistrar.register(this,&SENDER_ID);&&
}&else&{&&
&&Log.v(TAG,&"Already&registered");&&
c)其实在我们安装完Google Cloud Messaging for Android Library后里面就有一个目录tras\google\gcm\samples\gcm-demo-client,这里就有Android客户端的源码,只是我们需要做些修改,我们需要修改目录samples/gcm-demo-client/src/com/google/android/gcm/demo/app下的CommonUtilities.java 里的SENDER_ID&和SERVER_URL。修改如下:
static&final&String&SERVER_URL&=&"http://192.168.1.10:8080/gcm-demo";&&
static&final&String&SENDER_ID&=&"";&&
注:这里的SERVER_URL和SENDER_ID要根据你自己的实际情况来,到这里我们的程序就基本写完了。下面就就可以运行进行调试了...... 当你启动模拟器或是真机并且以上步骤都没错的话,再次向浏览器中输入http://192.168.1.10:8080/home出现的界面如下图所示。
4.这里楼主提供Android客户端程序的下载地址,服务器还需自己配置,下载地址: 注:此博文也是楼主根据官网总结出来的,难免有错,大家勿喷,如果大家有更好的方法,欢迎拿出来分享。 PS:希望大家下载了源码后能耐下心来看看,要知其然还要知其所以然。 最后,希望大家尊重劳动者的成果,在转载的时候加上本文链接:http://blog.csdn.net/jasonzhou613/article/details/8864302
阅读(...) 评论()

我要回帖

更多关于 faded是哪个电影里的歌 的文章

 

随机推荐