有没有可能让我的安卓设备作为服务器来发送GCM消息给另一个设备?我知道使用Web服务等方式可以实现,但我想只使用安卓设备直接发送GCM消息。
谢谢。
有没有可能让我的安卓设备作为服务器来发送GCM消息给另一个设备?我知道使用Web服务等方式可以实现,但我想只使用安卓设备直接发送GCM消息。
谢谢。
编写Android设备上的服务器端应用程序:
将SDK的gcm-server/dist目录中的gcm-server.jar文件复制到您的服务器类路径中。
创建一个Servlet(或其他服务器端机制),可供Android应用程序用于发送由GCM接收的注册ID。该应用程序还可能需要发送其他信息,例如用户的电子邮件地址或用户名,以便服务器可以将注册ID与拥有该设备的用户关联起来。同样,创建一个Servlet用于注销注册ID。当服务器需要向注册ID发送消息时,它可以使用GCM库中的com.google.android.gcm.server.Sender帮助类。
For example:
import com.google.android.gcm.server.*;
Sender sender = new Sender(myApiKey);
Message message = new Message.Builder().build();
MulticastResult result = sender.send(message, devices, 5);
if (result.getMessageId() != null) {
String canonicalRegId = result.getCanonicalRegistrationId();
if (canonicalRegId != null) {
// same device has more than on registration ID: update database
}
} else {
String error = result.getErrorCodeName();
if (error.equals(Constants.ERROR_NOT_REGISTERED)) {
// application has been removed from device - unregister database
}
}
<!-- App receives GCM messages. -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- GCM connects to Google Services. -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- GCM requires a Google account. -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<!-- Keeps the processor from sleeping when a message is received. -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<permission android:name="my_app_package.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="my_app_package.permission.C2D_MESSAGE" />
com.google.android.c2dm.permission.SEND权限
有关更多信息,请进一步探索。请不要在您没有充分了解事情之前询问工具。推荐链接