gpt4 book ai didi

android - 添加适用于 Android 的 Google 云消息传递 (FCM) - 注册过程

转载 作者:行者123 更新时间:2023-11-29 17:32:24 24 4
gpt4 key购买 nike

几周来我一直在努力实现 GCM,但我真的很想了解它是如何工作的,所以我决定采取“婴儿步骤”。

首先提到here ,我知道要做的第一件事是注册我的设备/应用程序,必须先向 GCM 注册。

To verify that they can send and receive messages, client apps must register with GCM. In this process, the client obtains a unique registration token.

我想知道下面的过程和代码是否代表进行此类注册所需的最少代码('必需的最少代码'是因为当我学习 OpenGL ES 2.0 并开始处理着色器,我看到在处理困难/令人困惑的概念时,如果您了解必要的最少代码,您以后可以理解什么是“外围”代码)

向 GCM 注册应用程序的过程:

  1. 在 Google Developer Console 创建一个项目;

    1. 激活“Android 云消息传递”API;
    2. 在“凭据”处创建服务器 API key ;
    3. 记下项目ID;
    4. 记下项目编号;
    5. 记下服务器 API key ;
  2. 创建一个 Android Studio 项目;

    1. 添加“带有 CGM 的 App Engine 后端”模块类型;
    2. 在将打开的“appengine-web.xml”窗口中,输入应用程序 ID 和服务器 API key 。
    3. 使用项目编号 (SENDER_ID) 创建主要 Activity 。

在我完成所有这些并运行应用程序后,我得到了一个包含 152 个字符的 token 。所有这些都正确吗?考虑到我得到了一个 token ,我的设备是否注册了 GCM?

appengine-web.xml:

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application>mygcmtest...</application>
<version>1</version>
<threadsafe>true</threadsafe>

<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/logging.properties" />

<property name="gcm.api.key" value="AIza..." />
</system-properties>
</appengine-web-app>

主要 Activity :

public class MainActivity extends AppCompatActivity {

private final Context mContext = this;
private final String SENDER_ID = "319899...";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

getGCMToken();
}

private void getGCMToken() {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
try {
InstanceID instanceID = InstanceID.getInstance(mContext);
String token = instanceID.getToken(SENDER_ID, GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
Log.e("GCM Token", token);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}.execute();
}
}

list :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.aninha.mygcmtest..." >

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

<permission
android:name="com.example.gcm.permission.C2D_MESSAGE"
android:protectionLevel="signature" />

<uses-permission android:name="com.example.gcm.permission.C2D_MESSAGE" />

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>

最佳答案

我对你的问题的回答是源代码How to implement a GCM Hello World for Android using Android Studio创建两个简单的 GCM 项目(服务器端和客户端)还不够吗? :)

当然,我使用的示例代码只是针对一个非常基本的情况“服务器应用程序发送,客户端应用程序接收并显示消息”

综上所述,您需要执行以下步骤:

  1. Google Developers Console 创建一个新项目.在这步骤,为简单起见,您只需要记下 2 个值:Project Number,其中将在我的客户项目中用作 SENDER_ID;和 API 服务器 key (创建于Credentials),其中将在我的服务器项目中用作 API_KEY
  2. 为服务器端创建一个新的简单 Android 项目(使用基本源代码作为我在上一个问题中的回答)。
  3. 为客户端创建一个新的简单 Android 项目(使用基本源代码作为我在上一个问题中的回答,我从 Google Cloud Messaging - GitHub 的原始源代码定制)。
  4. 运行客户端应用程序,您将获得注册 token (意味着您的设备已成功注册)。然后,将此 token 粘贴(硬编码)到服务器应用程序中的 CLIENT_REGISTRATION_TOKEN 变量。
  5. 运行服务器应用程序,并检查结果(客户端应用程序是否收到消息)

希望这对您有所帮助!

P/S: 我不使用任何appengine-web.xml 文件

关于android - 添加适用于 Android 的 Google 云消息传递 (FCM) - 注册过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32322631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com