Push-уведомления Urban Airship не выдвигают данные - PullRequest
0 голосов
/ 19 марта 2012

Я новичок в городском дирижабле и интегрирую это в свое приложение для Android. Получил образец источника от дирижабля, и я следовал той же процедуре, чтобы включить дирижабль в свое приложение. но всякий раз, когда я отправляю push-уведомление, я не могу получить его через свое устройство. Название пакета, которое я дал в моем источнике, то же самое, что я дал в дирижабле. Кто-нибудь может подсказать мне, как интегрировать Urban Airship в приложение для Android.

   AirshipConfigOptions options = AirshipConfigOptions.loadDefaultOptions(this);

    // Optionally, customize your config at runtime:
    //
    // options.inProduction = false;
     options.developmentAppKey = "My Key";
     options.developmentAppSecret "My key";

    UAirship.takeOff(this, options);
    Logger.logLevel = Log.VERBOSE;

    //use CustomPushNotificationBuilder to specify a custom layout
    CustomPushNotificationBuilder nb = new CustomPushNotificationBuilder();

    nb.statusBarIconDrawableId = R.drawable.icon_small;//custom status bar icon

    nb.layout = R.layout.notification;
    nb.layoutIconDrawableId = R.drawable.icon;//custom layout icon
    nb.layoutIconId = R.id.icon;
    nb.layoutSubjectId = R.id.subject;
    nb.layoutMessageId = R.id.message;

    // customize the sound played when a push is received
    //nb.soundUri = Uri.parse("android.resource://"+this.getPackageName()+"/" +R.raw.cat);

    PushManager.shared().setNotificationBuilder(nb);
    PushManager.shared().setIntentReceiver(IntentReceiver.class);

}

пока я компилирую приведенный выше код, я получаю

e   03-19 16:13:35.455: ERROR/AndroidRuntime(1247): Uncaught handler: thread main exiting due to uncaught exception
03-19 16:13:35.545: ERROR/AndroidRuntime(1247): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.XYZ}: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
03-19 16:13:35.545: ERROR/AndroidRuntime(1247):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2268)
03-19 16:13:35.545: ERROR/AndroidRuntime(1247):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2284)
03-19 16:13:35.545: ERROR/AndroidRuntime(1247):     at android.app.ActivityThread.access$1800(ActivityThread.java:112)
03-19 16:13:35.545: ERROR/AndroidRuntime(1247):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)
03-19 16:13:35.545: ERROR/AndroidRuntime(1247):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-19 16:13:35.545: ERROR/AndroidRuntime(1247):     at android.os.Looper.loop(Looper.java:123)
03-19 16:13:35.545: ERROR/AndroidRuntime(1247):     at android.app.ActivityThread.main(ActivityThread.java:3948)
03-19 16:13:35.545: ERROR/AndroidRuntime(1247):     at java.lang.reflect.Method.invokeNative(Native Method)
03-19 16:13:35.545: ERROR/AndroidRuntime(1247):     at java.lang.reflect.Method.invoke(Method.java:521)
03-19 16:13:35.545: ERROR/AndroidRuntime(1247):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
03-19 16:13:35.545: ERROR/AndroidRuntime(1247):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
03-19 16:13:35.545: ERROR/AndroidRuntime(1247):     at dalvik.system.NativeStart.main(Native Method)
03-19 16:13:35.545: ERROR/AndroidRuntime(1247): Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
03-19 16:13:35.545: ERROR/AndroidRuntime(1247):     at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:281)
03-19 16:13:35.545: ERROR/AndroidRuntime(1247):     at com.XYZ.onCreate(ManualUpdate.java:86)
03-19 16:13:35.545: ERROR/AndroidRuntime(1247):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
03-19 16:13:35.545: ERROR/AndroidRuntime(1247):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2231)

Ответы [ 2 ]

1 голос
/ 19 марта 2012

Попробуйте добавить файл "airshipconfig.properties" в ресурсы с:

developmentAppKey = key
developmentAppSecret = key
productionAppKey = key
productionAppSecret = key
inProduction = true
transport = c2dm
c2dmSender = email

и удалите:

options.developmentAppKey = "My Key";
options.developmentAppSecret "My key";

из вашего кода.

А как насчет AndroidManifest.xml? Вы правильно настроили?

       <!-- REQUIRED -->
    <receiver android:name="com.urbanairship.CoreReceiver">
        <!-- REQUIRED IntentFilter - For Helium and Hybrid -->
        <intent-filter>
          <action android:name="android.intent.action.BOOT_COMPLETED" />
          <action android:name="android.intent.action.ACTION_SHUTDOWN" />
        </intent-filter>
    </receiver>

    <!-- REQUIRED for C2DM and Hybrid -->
    <receiver android:name="com.urbanairship.push.c2dm.C2DMPushReceiver"
            android:permission="com.google.android.c2dm.permission.SEND">
      <!-- Receive the actual message -->
      <intent-filter>
          <action android:name="com.google.android.c2dm.intent.RECEIVE" />
          <category android:name="com.XXXXXXXX" />
      </intent-filter>
      <!-- Receive the registration id -->
      <intent-filter>
          <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
          <category android:name="com.XXXXXXXX" />
      </intent-filter>
    </receiver>

    <!-- REQUIRED -->
    <!-- The 'android:process' parameter is optional. Set it to a value starting
        with a colon (:) to make it run in a separate,
        private process -->
    <service android:name="com.urbanairship.push.PushService"
            android:process=":com.urbanairship.push.process"/>

    <!-- OPTIONAL, if you want to receive push, push opened and registration completed intents -->
    <receiver android:name="com.XXXXXXXXXX.service.IntentReceiver" />

И помните, что вы всегда должны видеть некоторую информацию логов от UrbanAirShip. Специально оформленная информация. Также проверьте, было ли ваше устройство добавлено в устройства на городском веб-сайте.

0 голосов
/ 01 июня 2012

Для Android и PhoneGap ::

Создайте xx.java в вашем каталоге src, который содержит следующее

package com.myapp.mobile.push.handler;
import com.phonegap.DroidGap;
import android.webkit.WebView;
import com.urbanairship.Logger;
import com.urbanairship.push.PushManager;
import com.urbanairship.push.PushPreferences;

public class extraFunctions  extends DroidGap {
    public WebView mAppView;
    private DroidGap mGap;
    public extraFunctions(DroidGap gap, WebView view)
     {
        mAppView = view;
        mGap = gap;
     }   

     public String getAUID(){
         PushPreferences prefs = PushManager.shared().getPreferences();
         return prefs.getPushId();
     }

}

Чтобы получить к нему доступ: в ваших активах / www

с использованием вызова JavaScript: window.extraFunctions.getAUID ();

...