IBM MobileFirst - 添加推送清单权限的原生 Android 应用程序

Posted

技术标签:

【中文标题】IBM MobileFirst - 添加推送清单权限的原生 Android 应用程序【英文标题】:IBM MobileFirst - Native Android Application adding push manifest permissions 【发布时间】:2015-07-26 04:02:45 【问题描述】:

我对此处找到的 IBM MobileFirst GMS 推送通知的权限部分感到困惑。 (第 5 节)

https://developer.ibm.com/mobilefirstplatform/documentation/getting-started-7-0/notifications/push-notification-native-android-applications/

我已经逐字添加了所有这些权限,但我收到一条错误消息,说我没有添加清单权限。我需要修改这些权限中的包名吗?

这个活动是内置的吗?

<activity
android:name="com.worklight.androidnativepush.AndroidNativePush"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar"
android:launchMode="singleTask">

这是错误日志

07-25 23:24:48.285  17146-17146/? E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: com.companyname.hitch.mobilefirsttestapp, PID: 17146 
java.lang.RuntimeException: Unable to start activity ComponentInfocom.companyname.hitch.mobilefirsttestapp/com.companyname.hitch.mobilefirsttestapp.push.PushActivity: java.lang.RuntimeException: Your manifest is not allowed to work with push. Android Manifest Error: Missing permission in manifest: com.companyname.hitch.mobilefirsttestapp.permission.C2D_MESSAGE 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
        at android.app.ActivityThread.access$800(ActivityThread.java:135) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:136) 
        at android.app.ActivityThread.main(ActivityThread.java:5001) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:515) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
        at dalvik.system.NativeStart.main(Native Method) 
 Caused by: java.lang.RuntimeException: Your manifest is not allowed to work with push. Android Manifest Error: Missing permission in manifest: com.companyname.hitch.mobilefirsttestapp.permission.C2D_MESSAGE 
        at com.worklight.wlclient.api.WLPush.<init>(WLPush.java:180) 
        at com.worklight.wlclient.api.WLClient.getPush(WLClient.java:957) 
        at com.companyname.hitch.mobilefirsttestapp.push.PushActivity.onCreate(PushActivity.java:19) 
        at android.app.Activity.performCreate(Activity.java:5231) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
        at android.app.ActivityThread.access$800(ActivityThread.java:135) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:136) 
        at android.app.ActivityThread.main(ActivityThread.java:5001) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:515) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
        at dalvik.system.NativeStart.main(Native Method) 

【问题讨论】:

为什么不包括你得到的错误以及你的清单文件? 嘿伊丹,正在努力。它在一个单独的工作站上。一瞬间 【参考方案1】:

在使用 Android 环境创建基于 MobileFirst 的混合应用程序时,MobileFirst 将基于具有一组预定义权限和活动的模板来创建它。

在本机应用程序中,您是创建它的人。 MobileFirst 仅向您提供 SDK 和一组集成说明。

您在问题中提到的活动(取自教程页面)是教程中包含的示例应用程序的活动。在您自己应用的 AndroidManifest.xml 中,您将看到您的应用名称而不是“androidnativepush”(或者说需要创建它)。

确保不要在任何地方使用“androidnativepush”,除非那是您的应用名称。

【讨论】:

看起来接收器中意图过滤器内的“类别”标签正在使用“com.worklight.androidnativepush”。我假设这也需要用我的包名进行更改? 是的。任何地方都说“androidnativepush”应该替换为您自己的应用程序名称。我编辑了教程以澄清这一点。

以上是关于IBM MobileFirst - 添加推送清单权限的原生 Android 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

IBM MobileFirst 7.1 推送订阅用户标识为空

IBM Mobilefirst CLI 7.1.0 mfp 推送错误

IBM mobileFirst 8.0 中带有图像的促销推送通知

IBM MobileFirst 8 - 推送通知错误代码:invalid_client

IBM MobileFirst:如何让应用程序接收任何活动的推送通知

在 ibm Mobilefirst 中以非活动模式推送通知