在 android studio 中使用 GCM
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/21914805/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Using GCM in android studio
提问by Sterling Diaz
I don't know how to get GCM working in my project in android studio.
我不知道如何让 GCM 在我的 android studio 项目中工作。
When I use some of the clases of GCM, y get this: Can't resolve symbol GCMRegistrar In this code:
当我使用 GCM 的一些类时,你得到这个:无法解析符号 GCMRegistrar 在这段代码中:
GCMRegistrar.checkDevice(this);
And it does not show the option to import the class.
它没有显示导入类的选项。
This is my graddle file:
这是我的gradle文件:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.8.0'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.1"
defaultConfig {
minSdkVersion 9
targetSdkVersion 19
}
}
dependencies {
compile 'com.android.support:appcompat-v7:19.0.1'
compile 'com.google.android.gms:play-services:4.2.42'
}
This is my manifest:
这是我的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.compage.womenshield"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<permission android:name="com.compage.womenshield.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.compage.womenshield.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
<application
android:allowBackup="true"
android:icon="@drawable/icono_app"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.compage.womenshield.Splash"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyCgQNclD9ZqxhiJXGdFvTTx2theitroad_vKfJCM"/>
<receiver
android:name=".GCMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<!-- Receives the actual messages. -->
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<!-- Receives the registration id. -->
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.javapapers.android" />
</intent-filter>
</receiver>
<service android:name="com.compage.womenshield.notification.GCMIntentService" />
</application>
</manifest>
It shows error in here:
它在这里显示错误:
<receiver
android:name=".GCMBroadcastReceiver"
In the clase name. And here:
在类名中。和这里:
<service android:name="com.compage.womenshield.notification.GCMIntentService" />
How can I use these gcm classes in android studio?
如何在 android studio 中使用这些 gcm 类?
回答by meda
You are probably using an old tutorial but GCMRegistrar
is a deprecated API class.
您可能正在使用旧教程,但它GCMRegistrar
是一个已弃用的 API 类。
You should really be using the new one, as it will be removed soon.
你真的应该使用新的,因为它很快就会被删除。
Please use the GoogleCloudMessagingAPI instead.
请改用GoogleCloudMessagingAPI。
回答by kundan roy
You are using older way. you should check official documentation of google to use gcm in your app. now Instance ID is used to get token
您正在使用较旧的方式。您应该查看谷歌的官方文档以在您的应用程序中使用 gcm。现在实例 ID 用于获取令牌
String token = instanceID.getToken(getString(R.string.gcm_defaultSenderId),
GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
for complete tutorial you can check tutorial
对于完整的教程,您可以查看教程