标签: amazon-device-messaging

亚马逊设备消息存根!Android Studio

我正在尝试将Amazon Device Messaging与Android Studio集成.首先我跟着(整合你的app-with-adm).我打电话的时候

ADM adm = new ADM(getActivity());
if (adm.isSupported()) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

logcat上有这个输出:

E/AndroidRuntime(24472):java.lang.RuntimeException:Stub!

E/AndroidRuntime(24472):at com.amazon.device.messaging.ADM.(Unknown Source)

所以我跟随Amazons(将Amazon Libraries与Android Studio集成)的结果相同.

然后我尝试了这个,没有成功.

我的AndroidManifest.xml看起来像这样:

...
<uses-permission android:name="de.mypackage.permission.RECEIVE_ADM_MESSAGE" />
<uses-permission android:name="com.amazon.device.messaging.permission.RECEIVE" />
<permission android:name=".permission.RECEIVE_ADM_MESSAGE" android:protectionLevel="signature" />
...
<application
    android:name=".MyPackageApplication"
    android:allowBackup="true"
    android:allowClearUserData="true"
    android:hardwareAccelerated="false"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">
...
    <service android:name=".service.ADMNotificationService" android:exported="false" />

    <amazon:enable-feature android:name="com.amazon.device.messaging" android:required="true" />

    <receiver android:name=".service.ADMNotificationService$MessageAlertReceiver"
        android:permission="com.amazon.device.messaging.permission.SEND">
    <intent-filter>
            <action android:name="com.amazon.device.messaging.intent.REGISTRATION" />
            <action android:name="com.amazon.device.messaging.intent.RECEIVE" />
            <category android:name="de.mypackage"/>
        </intent-filter>
    </receiver>
...
</application>
Run Code Online (Sandbox Code Playgroud)

本地build.gradle看起来像这样:

... …
Run Code Online (Sandbox Code Playgroud)

android android-studio amazon-device-messaging build.gradle android-gradle-plugin

10
推荐指数
1
解决办法
1161
查看次数

SNS批量发布

我看到AWS发布API用于向设备发送推送通知. http://docs.aws.amazon.com/sns/latest/api/API_Publish.html

根据:https: //aws.amazon.com/blogs/aws/push-notifications-to-mobile-devices-using-amazon-sns/ 我们可以"通过调用发布功能将消息直接发送到特定设备设备的ARN.您可以通过将端点ARN存储在Amazon DynamoDB中并在服务器上使用多线程代码来轻松扩展它以处理数百万用户.

如果我想向100K用户(没有注册到特定主题)发送推送通知,是否有多发布(或批量发布)API,我不需要调用"推送通知"API对于每个用户?

amazon-web-services amazon-sns amazon-device-messaging

7
推荐指数
1
解决办法
4309
查看次数

使用 Amazon Device Messaging 时生成错误:类必须扩展 android.app.Service [Instantiatable]

我正在按照此官方文档将亚马逊设备消息传递集成到我的应用程序中。根据文档,我必须创建一个扩展ADMMessageHandlerJobBase的类 (MyADMMessageHandler.java)并在 AndroidManifest.xml 中将我的类声明为服务

AndroidManifest.xml

<service android:name=".pn.MyADMMessageHandler"
            android:exported="false"
            android:permission="android.permission.BIND_JOB_SERVICE"/>
Run Code Online (Sandbox Code Playgroud)

但是当我构建我的应用程序时,我收到了这个错误

AndroidManifest.xml:153: Error: MyADMMessageHandler must extend android.app.Service [Instantiatable]
  <service android:name=".pn.MyADMMessageHandler"                           

   Explanation for issues of type "Instantiatable":
   Activities, services, broadcast receivers etc. registered in the manifest
   file (or for custom views, in a layout file) must be "instantiatable" by
   the system, which means that the class must be public, it must have an
   empty public constructor, and if it's an inner class, it must be a static …
Run Code Online (Sandbox Code Playgroud)

android kindle-fire amazon-device-messaging

6
推荐指数
0
解决办法
1219
查看次数

Android Studio运行时错误存根!在com.amazon.device.messaging.ADMMessageReceiver.<init>()

当我构建我的Android应用程序的亚马逊(Kindle)风格时,我遇到了这个运行时错误:

Caused by: java.lang.RuntimeException: Stub!
at com.amazon.device.messaging.ADMMessageReceiver.<init>()
Run Code Online (Sandbox Code Playgroud)

我需要本地amazon-device-messaging.jar文件来编译我的应用程序,但是我不需要在运行时包含它,因为亚马逊设备将具有必要的类和方法.如何更新我的Android Studio build.gradle文件来执行此操作?

amazon kindle gradle android-studio amazon-device-messaging

5
推荐指数
2
解决办法
2186
查看次数

在C#上发送带有内容类型应用程序Json的Https请求

我试图发送以下请求:

 POST /messaging/registrations/(REGISTRATION_ID_FOR_DESTINATION_APP_INSTANCE)/messages   HTTP/1.1
 Host: api.amazon.com
 Authorization: Bearer (MY_ACCESS_TOKEN)
 Content-Type: application/json
 X-Amzn-Type-Version: com.amazon.device.messaging.ADMMessage@1.0
 Accept: application/json
 X-Amzn-Accept-Type: com.amazon.device.messaging.ADMSendResult@1.0

 {
"data":{"message":"value1","title":"value2"},
"consolidationKey":"Some Key",
"expiresAfter":86400
 }
Run Code Online (Sandbox Code Playgroud)

为了获得这样的响应格式:

 HTTP/1.1 200
 X-Amzn-Data-md5: t5psxALRTM7WN30Q8f20tw==
 X-Amzn-RequestId: e8bef3ce-242e-11e2-8484-47f4656fc00d
 Content-Type: application/json
 X-Amzn-Type-Version: com.amazon.device.messaging.ADMSendResult@1.0
 Content-Length: 308

 {"registrationID":(REGISTRATION_ID_FOR_DESTINATION_APP_INSTANCE)}
Run Code Online (Sandbox Code Playgroud)

要做到这一点我尝试使用此代码:

private void sendNotification(String registrationID,String message,
                                          String title,String accessToken)
{     
 //registrationID content (REGISTRATION_ID_FOR_DESTINATION_APP_INSTANCE) that can vary
 string url = "https://api.amazon.com/messaging/registrations/"+ registrationID +"/messages";

 var client = new HttpClient();

 //set Request headers 
 client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
                                                      "Bearer", accessToken);
 client.DefaultRequestHeaders.Accept.Add(
             new MediaTypeWithQualityHeaderValue("application/json"));
 client.DefaultRequestHeaders.Add("X-Amzn-Type-Version",
                                "com.amazon.device.messaging.ADMMessage@1.0");
 client.DefaultRequestHeaders.Add("X-Amzn-Accept-Type",
                            "com.amazon.device.messaging.ADMSendResult@1.0"); …
Run Code Online (Sandbox Code Playgroud)

c# asp.net httpclient json.net amazon-device-messaging

2
推荐指数
1
解决办法
2万
查看次数