android - 无法从 Urban Airship 获得推送通知

标签 android push-notification urbanairship.com

我正在将 Urban Airship 集成到我的 Android 应用程序中。我从那里得到了一个示例代码,并按照相同的过程从我的应用程序中调用它。但是,我的设备上没有收到任何推送通知。

谁能指导我如何将 Urban Airship 集成到 Android 应用程序中?如何将 AppId 和 GCM Register ID 发送到 Urban Airship 服务器并获得通知?

public class MyApplication extends Application {

    public static SharedPreferences PREFS_TOKEN;
    public static final String PREFERENCE = "UrbanAirship";
    public static String tokenKey;

    @Override
    public void onCreate() {
        super.onCreate();

        AirshipConfigOptions options = AirshipConfigOptions
                .loadDefaultOptions(this);

        UAirship.takeOff(this, options);
        PushManager.enablePush();

        // Optionally, customize your config at runtime:
        //
        // options.inProduction = false;
        // options.developmentAppKey = "Your Development App Key";
        // options.developmentAppSecret "Your Development App Secret";
        // UAirship.takeOff(this, options);

        Logger.logLevel = Log.VERBOSE;

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

        nb.statusBarIconDrawableId = R.drawable.icon;// 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);

        String apid = PushManager.shared().getAPID();

        Logger.info("My Application onCreate - App APID: " + apid);

        PREFS_TOKEN = this.getSharedPreferences(PREFERENCE,
                Context.MODE_PRIVATE);
        Editor edit = PREFS_TOKEN.edit();

        if (apid != null && apid != "") {
            edit.putString(PREFERENCE, apid);
            edit.commit();
        } else {
            edit.putString(PREFERENCE, apid);
            edit.commit();
        }

        tokenKey = PREFS_TOKEN.getString(PREFERENCE, "");
        System.out.println("---------- - App APID: " + tokenKey);

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

Intent 接收者

public class IntentReceiver extends BroadcastReceiver {

    private static final String logTag = "PushSample";
    public static String APID_UPDATED_ACTION_SUFFIX = ".apid.updated";

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i(logTag, "Received intent: " + intent.toString());
        String action = intent.getAction();

        if (action.equals(PushManager.ACTION_PUSH_RECEIVED)) {
            int id = intent.getIntExtra(PushManager.EXTRA_NOTIFICATION_ID, 0);

            // Id
            String ap_id = intent.getStringExtra(PushManager.EXTRA_APID);

            System.out.println("IntentReceiver::- ID::-" + ap_id);

            Log.i(logTag,
                    "Received push notification. Alert: "
                            + intent.getStringExtra(PushManager.EXTRA_ALERT)
                            + " [NotificationID=" + id + "]");

            logPushExtras(intent);
        } else if (action.equals(PushManager.ACTION_NOTIFICATION_OPENED)) {
            Log.i(logTag,
                    "User clicked notification. Message: "
                            + intent.getStringExtra(PushManager.EXTRA_ALERT));

            logPushExtras(intent);

            Intent launch = new Intent(Intent.ACTION_MAIN);
            launch.setClass(UAirship.shared().getApplicationContext(),
                    SplashMainActivity.class);
            launch.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

            UAirship.shared().getApplicationContext().startActivity(launch);
        } else if (action.equals(PushManager.ACTION_REGISTRATION_FINISHED)) {
            Log.i(logTag,
                    "Registration complete. APID:"
                            + intent.getStringExtra(PushManager.EXTRA_APID)
                            + ". Valid: "
                            + intent.getBooleanExtra(
                                    PushManager.EXTRA_REGISTRATION_VALID, false));

            // Notify any app-specific listeners
            Intent launch = new Intent(UAirship.getPackageName()
                    + APID_UPDATED_ACTION_SUFFIX);
            UAirship.shared().getApplicationContext().sendBroadcast(launch);
        } else if (action.equals(GCMMessageHandler.ACTION_GCM_DELETED_MESSAGES)) {
            Log.i(logTag,
                "The GCM service deleted "
                        + intent.getStringExtra(GCMMessageHandler.EXTRA_GCM_TOTAL_DELETED)
                        + " messages.");
        }
    }

    /**
     * Log the values sent in the payload's "extra" dictionary.
     * 
     * @param intent
     *            A PushManager.ACTION_NOTIFICATION_OPENED or
     *            ACTION_PUSH_RECEIVED intent.
     */
    private void logPushExtras(Intent intent) {
        Set<String> keys = intent.getExtras().keySet();
        for (String key : keys) {
            // ignore standard C2DM extra keys
            List<String> ignoredKeys = (List<String>) Arrays.asList(
                    "collapse_key",// c2dm collapse key
                    "from",// c2dm sender
                    PushManager.EXTRA_NOTIFICATION_ID,  // int id of generated
                                                        // notification
                                                        // (ACTION_PUSH_RECEIVED
                                                        // only)
                    PushManager.EXTRA_PUSH_ID,// internal UA push id
                    PushManager.EXTRA_ALERT);// ignore alert
            if (ignoredKeys.contains(key)) {
                continue;
            }
            Log.i(logTag,
                    "Push Notification Extra: [" + key + " : "
                            + intent.getStringExtra(key) + "]");
        }
    }
}

LogCat:应用发送请求并获取App Id

07-29 15:57:28.794: E/Trace(13468): error opening trace file: No such file or directory (2)
07-29 15:57:28.814: I/ActivityThread(13468): Pub com.dimdimsumapp.aniemoticonsfree.urbanairship.provider:com.urbanairship.UrbanAirshipProvider
07-29 15:57:28.934: D/dimdimsum - UALib(13468): Airship Take Off! Lib Version: 3.0.0 / App key = ydNnhfVFSa-mBbxvZsrSTg
07-29 15:57:28.934: D/dimdimsum - UALib(13468): In Production? false
07-29 15:57:29.024: D/dimdimsum - UALib(13468): Initializing Push.
**07-29 15:57:29.064: D/dimdimsum APID(13468): ceb76a95-e6d0-459e-a6ef-942ceddd750d**
07-29 15:57:29.064: D/dimdimsum - UALib(13468): Initializing Analytics.
07-29 15:57:29.104: I/dimdimsum - UALib(13468): My Application onCreate - App APID: ceb76a95-e6d0-459e-a6ef-942ceddd750d
07-29 15:57:29.104: I/System.out(13468): ---------- - App APID: ceb76a95-e6d0-459e-a6ef-942ceddd750d
07-29 15:57:29.234: V/dimdimsum - UALib(13468): com.urbanairship.analytics.ActivityStartedEvent -
    {"data":{"class_name":"com.dimdimsumapp.aniemoticonsfree.SplashMainActivity","session_id":"6d266e92-6bd5-431b-bf52-fe270cb2b80d"},"type":"activity_started","event_id":"7885aac7-26bb-475a-8fa7-bad81dc8ab47","time":"1375093649"}
07-29 15:57:29.234: V/dimdimsum - UALib(13468): New session: 09ea147d-5a9f-4b5d-9bf6-1d7a4511a380
07-29 15:57:29.254: V/dimdimsum - UALib(13468): com.urbanairship.analytics.AppForegroundEvent -
    {"data":{"time_zone":19800,"session_id":"09ea147d-5a9f-4b5d-9bf6-1d7a4511a380","notification_types":["sound","vibrate"],"daylight_savings":false,"push_enabled":true,"carrier":"","lib_version":"3.0.0","connection_type":"wifi","package_version":"1.0","os_version":"4.1.1"},"type":"app_foreground","event_id":"d63915e7-e0be-4779-9c60-90cb2e535ed7","time":"1375093649"}

07-29 15:57:29.314: D/dimdimsum - UALib(13468): Push enabled: true
07-29 15:57:29.324: V/dimdimsum - UALib(13468): com.dimdimsumapp.aniemoticonsfree.urbanairship.analytics.APP_FOREGROUND
07-29 15:57:29.334: D/dimdimsum - UALib(13468): Starting GCM
07-29 15:57:29.334: I/System.out(13468): Extra Call::-3D Smiley
07-29 15:57:30.874: I/dimdimsum - UALib(13468): Using GCM Registration ID:
    APA91bEOcPZneTlt9ObegtkCj4QhO6FP-nym7LIE5YaTtTzUCayIFifG85kLG3Z3MXNgSMqyfBkt_B4NpaVdWR7TZmgZV6LkooqkR9uR48kZxgkxTriv3y9RVNQyDf3ahned53FF-2vnk7MxtOiaL_7bB1IW4Tbx-qnATWQpHFKrvcnVEsYoX9c
07-29 15:57:34.344: D/dalvikvm(13468): GC_CONCURRENT freed 16K, 9% free 9416K/10311K, paused 2ms+1ms, total 12ms
07-29 15:57:34.394: V/dimdimsum - UALib(13468): com.urbanairship.analytics.ActivityStartedEvent -
    {"data":{"class_name":"com.dimdimsumapp.aniemoticonsfree.SplashLodingActivity","session_id":"09ea147d-5a9f-4b5d-9bf6-1d7a4511a380"},"type":"activity_started","event_id":"505c5d2a-f98d-436b-a32f-0c24cf3bd378","time":"1375093654"}
07-29 15:57:34.464: D/dalvikvm(13468): GC_FOR_ALLOC freed 919K, 14% free 9413K/10823K, paused 10ms, total 10ms
07-29 15:57:34.544: V/dimdimsum - UALib(13468): com.urbanairship.analytics.ActivityStoppedEvent -
    {"data":{"class_name":"com.dimdimsumapp.aniemoticonsfree.SplashMainActivity","session_id":"09ea147d-5a9f-4b5d-9bf6-1d7a4511a380"},"type":"activity_stopped","event_id":"bfa4ee55-dbe3-40e6-b0f1-25655022a6a8","time":"1375093654"}
07-29 15:57:34.544: W/dimdimsum - UALib(13468): Activity com.dimdimsumapp.aniemoticonsfree.SplashMainActivity@411aa7a0 was not manually added during onStart(). Call UAirship.shared().getAnalytics().activityStarted in every activity's onStart() method.

07-29 15:57:38.374: I/dalvikvm(13468):   #17  pc 0005fab7  /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+374)
07-29 15:57:44.984: V/dimdimsum - UALib(13468): com.urbanairship.analytics.ActivityStartedEvent -
    {"data":{"class_name":"com.dimdimsumapp.aniemoticonsfree.view.MenuActivity","session_id":"09ea147d-5a9f-4b5d-9bf6-1d7a4511a380"},"type":"activity_started","event_id":"7026224f-b14a-401f-b9c8-0b0c510e5442","time":"1375093664"}
07-29 15:57:44.984: V/BulletinBoardTabActivity(13468): Entered in Activity
07-29 15:57:44.994: D/dalvikvm(13468): DexOpt: --- BEGIN 'ads360220448.jar' (bootstrap=0) ---
07-29 15:57:45.054: E/ActivityThread(13468): Failed to find provider info for com.google.plus.platform
07-29 15:57:45.064: I/Ads(13468): To get test ads on this device, call adRequest.addTestDevice("E55D186D8620B7B943AC22C1DEFD4948");
07-29 15:57:45.074: I/[RevMob](13468): Loading Fullscreen
07-29 15:57:45.084: I/[RevMob](13468): The ad is not completely loaded yet. As soon as it is loaded, it is going to be displayed automatically.

07-29 15:57:45.094: W/System.err(13468):    at dalvik.system.NativeStart.main(Native Method)
07-29 15:57:45.754: V/dimdimsum - UALib(13468): com.urbanairship.analytics.ActivityStartedEvent -
    {"data":{"class_name":"com.dimdimsumapp.aniemoticonsfree.view.MainActivity","session_id":"09ea147d-5a9f-4b5d-9bf6-1d7a4511a380"},"type":"activity_started","event_id":"11d4e931-39d5-4374-b4bf-319d9abf022a","time":"1375093665"}
07-29 15:57:45.754: V/dimdimsum - UALib(13468): com.urbanairship.analytics.ActivityStartedEvent -
    {"data":{"class_name":"com.dimdimsumapp.aniemoticonsfree.MainTabActivity","session_id":"09ea147d-5a9f-4b5d-9bf6-1d7a4511a380"},"type":"activity_started","event_id":"a1f8a882-a2b4-4600-b62e-2108f296b599","time":"1375093665"}
07-29 15:57:45.834: I/Chartboost(13468): SHOULD REQUEST INSTERSTITIAL 'Default'?
07-29 15:57:46.024: V/dimdimsum - UALib(13468): com.urbanairship.analytics.ActivityStoppedEvent -
    {"data":{"class_name":"com.dimdimsumapp.aniemoticonsfree.SplashLodingActivity","session_id":"09ea147d-5a9f-4b5d-9bf6-1d7a4511a380"},"type":"activity_stopped","event_id":"8dab5740-b165-42d5-a7fb-965127319581","time":"1375093666"}
07-29 15:57:46.024: W/dimdimsum - UALib(13468): Activity com.dimdimsumapp.aniemoticonsfree.SplashLodingActivity@41257a40 was not manually added during onStart(). Call UAirship.shared().getAnalytics().activityStarted in every activity's onStart() method.
07-29 15:57:46.124: D/dalvikvm(13468): GC_CONCURRENT freed 792K, 10% free 10192K/11271K, paused 12ms+13ms, total 46ms
07-29 15:57:46.134: D/webviewglue(13468): nativeDestroy view: 0x400dbbc8
07-29 15:57:46.474: D/dalvikvm(13468): DexOpt: --- END 'ads360220448.jar' (success) ---
07-29 15:57:46.474: D/dalvikvm(13468): DEX prep '/data/data/com.dimdimsumapp.aniemoticonsfree/cache/ads360220448.jar': unzip in 0ms, rewrite 1486ms
07-29 15:57:49.714: D/[RevMob](13468): Server request successful (200)
07-29 15:57:49.714: D/[RevMob](13468): Server request successful (200)
07-29 15:57:49.734: I/Ads(13468): adRequestUrlHtml: <html><head><script
    src="http://media.admob.com/sdk-core-v40.js"></script><script>AFMA_getSdkConstants();AFMA_buildAdURL({"preqs":1,"session_id":"2193324013207180751","seq_num":"2","slotname":"a1514342105f35b","u_w":800,"msid":"com.dimdimsumapp.aniemoticonsfree","js":"afma-sdk-a-v6.4.1","bas_off":0,"net":"wi","app_name":"1.android.com.dimdimsumapp.aniemoticonsfree","hl":"en","smart_w":"full","gnt":0,"u_audio":1,"kw":[],"u_sd":1,"ms":"p0DRX3Xo5pLuR1fi0Ic10MS35Dw_drZEu_5_6RtMnJ822YUea_sQghGZZK0bPsKzzuAnPIWk8-yVqxb9BHIf_N-j3wpJBeSHhm826l5-piFZk6HwjYPzw6C41oIvK6Bow-j8W9VSM3ZqaMO7ybwSFgNQ_TLU8gO3E-5FOGlfGGXrNWF4JtTXnpsY5vWHbZyc1EehpK9IhJRBPHGqB1XvRy1lvg3wS3Ib-0Apre5d35WdzelWh5hs9_shmOeyTZDDX_-rpmVyAU_HYClt7ojGk5a_42e6Bk5LtbsUJ4EL2TTF7I7D18yarbwISoYIsSEDedrx_TIAT8XzCyc-ZcNqmw","mv":"80210010.com.android.vending","isu":"E55D186D8620B7B943AC22C1DEFD4948","format":"800x90_mb","oar":0,"smart_h":"auto","ad_pos":{"height":70,"visible":1,"y":55,"x":0,"width":800},"u_h":1232,"pt":0,"bas_on":0,"ptime":121});</script></head><body></body></html>
07-29 15:57:49.744: I/Ads(13468): adRequestUrlHtml: <html><head><script
    src="http://media.admob.com/sdk-core-v40.js"></script><script>AFMA_getSdkConstants();AFMA_buildAdURL({"preqs":0,"session_id":"2193324013207180751","seq_num":"1","slotname":"a1514342105f35b","u_w":800,"msid":"com.dimdimsumapp.aniemoticonsfree","js":"afma-sdk-a-v6.4.1","bas_off":0,"net":"wi","app_name":"1.android.com.dimdimsumapp.aniemoticonsfree","hl":"en","smart_w":"full","gnt":0,"u_audio":1,"kw":[],"u_sd":1,"ms":"XsSWrnHHD52AS1MoI-uXmIkhfG-hiLlwqgiB_WHMZUeTQmHYO_tZeAu0jgwxMfVMgcybiP5cHOyXxhGWCf-wJYtsCtLk1OJhJa7J-YGAOa1QlZFdC2H53dMvI-QopAY0PWqbYMIqLu7xNfEVIS7E-J618_jQ8i0Ydf3grtdafjeGhyRqxuakG7MadX0_CWU-l2INfQPW3ys0iK85uHegeY7ACM6Xmd5SPBt3KBrsP7fn7uPX2B7cNCuM09YPFgBAfFiA5GlEO-1aY7AI4RxgFkew_EJPDlKk42YxqTeI4xc-m7O7hHcE229JYlNopOkgPboiHXzA82k5j2uoCdZ5JQ","mv":"80210010.com.android.vending","isu":"E55D186D8620B7B943AC22C1DEFD4948","format":"800x90_mb","oar":0,"smart_h":"auto","ad_pos":{"height":0,"visible":0,"y":5,"x":0,"width":0},"u_h":1232,"pt":0,"bas_on":0,"ptime":0});</script></head><body></body></html>
07-29 15:57:49.814: V/WebRequest(13468): WebRequest::WebRequest, setPriority = 1
07-29 15:57:53.804: D/[RevMob](13468): Fullscreen static
07-29 15:57:53.804: W/SingleClientConnManager(13468): Invalid use of SingleClientConnManager: connection still allocated.
07-29 15:57:53.804: W/SingleClientConnManager(13468): Make sure to release the connection before allocating another one.
07-29 15:57:53.874: I/Ads(13468): Received ad url: <url:
    "http://googleads.g.doubleclick.net:80/mads/gma?preqs=1&session_id=2193324013207180751&seq_num=2&u_w=800&msid=com.dimdimsumapp.aniemoticonsfree&js=afma-sdk-a-v6.4.1&bas_off=0&net=wi&app_name=1.android.com.dimdimsumapp.aniemoticonsfree&hl=en&smart_w=full&gnt=0&u_audio=1&kw&u_sd=1&ms=p0DRX3Xo5pLuR1fi0Ic10MS35Dw_drZEu_5_6RtMnJ822YUea_sQghGZZK0bPsKzzuAnPIWk8-yVqxb9BHIf_N-j3wpJBeSHhm826l5-piFZk6HwjYPzw6C41oIvK6Bow-j8W9VSM3ZqaMO7ybwSFgNQ_TLU8gO3E-5FOGlfGGXrNWF4JtTXnpsY5vWHbZyc1EehpK9IhJRBPHGqB1XvRy1lvg3wS3Ib-0Apre5d35WdzelWh5hs9_shmOeyTZDDX_-rpmVyAU_HYClt7ojGk5a_42e6Bk5LtbsUJ4EL2TTF7I7D18yarbwISoYIsSEDedrx_TIAT8XzCyc-ZcNqmw&mv=80210010.com.android.vending&format=800x90_mb&oar=0&smart_h=auto&u_h=1232&bas_on=0&ptime=121&u_so=p&imbf=%40installed_markets%40&cap=t&output=html&region=mobile_app&u_tz=330&client_sdk=1&ex=1&slotname=a1514342105f35b&kw_type=broad&askip=1&gsb=wi&caps=inlineVideo_interactiveVideo_mraid1_th_autoplay_mediation_sdkAdmobApiForAds_di&eisu=hSCEQLwXlQ5zQs_QZvNYzuXzxV6V4206otKKrdAOuzZZ9PFeGAZbXn5F_iuYOfFvxOpKQDuYJAlW-YKlEH2LK90RIGT2if9ira5RJEckQgGBacn8GXzr1XLCWPXeV5ZR&et=10&jsv=53"
    type: "admob" afmaNotifyDt: "null" activationOverlayUrl: "null"
    useWebViewLoadUrl: "false">
07-29 15:57:53.884: I/Ads(13468): Ad url modified to http://googleads.g.doubleclick.net:80/mads/gma?preqs=1&session_id=2193324013207180751&seq_num=2&u_w=800&msid=com.dimdimsumapp.aniemoticonsfree&js=afma-sdk-a-v6.4.1&bas_off=0&net=wi&app_name=1.android.com.dimdimsumapp.aniemoticonsfree&hl=en&smart_w=full&gnt=0&u_audio=1&kw&u_sd=1&ms=p0DRX3Xo5pLuR1fi0Ic10MS35Dw_drZEu_5_6RtMnJ822YUea_sQghGZZK0bPsKzzuAnPIWk8-yVqxb9BHIf_N-j3wpJBeSHhm826l5-piFZk6HwjYPzw6C41oIvK6Bow-j8W9VSM3ZqaMO7ybwSFgNQ_TLU8gO3E-5FOGlfGGXrNWF4JtTXnpsY5vWHbZyc1EehpK9IhJRBPHGqB1XvRy1lvg3wS3Ib-0Apre5d35WdzelWh5hs9_shmOeyTZDDX_-rpmVyAU_HYClt7ojGk5a_42e6Bk5LtbsUJ4EL2TTF7I7D18yarbwISoYIsSEDedrx_TIAT8XzCyc-ZcNqmw&mv=80210010.com.android.vending&format=800x90_mb&oar=0&smart_h=auto&u_h=1232&bas_on=0&ptime=121&u_so=p&imbf=8009&cap=t&output=html&region=mobile_app&u_tz=330&client_sdk=1&ex=1&slotname=a1514342105f35b&kw_type=broad&askip=1&gsb=wi&caps=inlineVideo_interactiveVideo_mraid1_th_autoplay_mediation_sdkAdmobApiForAds_di&eisu=hSCEQLwXlQ5zQs_QZvNYzuXzxV6V4206otKKrdAOuzZZ9PFeGAZbXn5F_iuYOfFvxOpKQDuYJAlW-YKlEH2LK90RIGT2if9ira5RJEckQgGBacn8GXzr1XLCWPXeV5ZR&et=10&jsv=53
07-29 15:57:53.884: I/Ads(13468): Request scenario: Online server request.
07-29 15:57:53.964: I/Ads(13468): Received ad url: <url:
    "http://googleads.g.doubleclick.net:80/mads/gma?preqs=0&session_id=2193324013207180751&seq_num=1&u_w=800&msid=com.dimdimsumapp.aniemoticonsfree&js=afma-sdk-a-v6.4.1&bas_off=0&net=wi&app_name=1.android.com.dimdimsumapp.aniemoticonsfree&hl=en&smart_w=full&gnt=0&u_audio=1&kw&u_sd=1&ms=XsSWrnHHD52AS1MoI-uXmIkhfG-hiLlwqgiB_WHMZUeTQmHYO_tZeAu0jgwxMfVMgcybiP5cHOyXxhGWCf-wJYtsCtLk1OJhJa7J-YGAOa1QlZFdC2H53dMvI-QopAY0PWqbYMIqLu7xNfEVIS7E-J618_jQ8i0Ydf3grtdafjeGhyRqxuakG7MadX0_CWU-l2INfQPW3ys0iK85uHegeY7ACM6Xmd5SPBt3KBrsP7fn7uPX2B7cNCuM09YPFgBAfFiA5GlEO-1aY7AI4RxgFkew_EJPDlKk42YxqTeI4xc-m7O7hHcE229JYlNopOkgPboiHXzA82k5j2uoCdZ5JQ&mv=80210010.com.android.vending&format=800x90_mb&oar=0&smart_h=auto&u_h=1232&bas_on=0&ptime=0&u_so=p&imbf=%40installed_markets%40&cap=t&output=html&region=mobile_app&u_tz=330&client_sdk=1&ex=1&slotname=a1514342105f35b&kw_type=broad&gsb=wi&caps=inlineVideo_interactiveVideo_mraid1_th_autoplay_mediation_sdkAdmobApiForAds_di&eisu=mJ5gWZo5jcV51kF671otqywVPd9HzqJSLviR5bZ1ubyxvtFnkFW0XeSqgwQnl0L7hK3qzuEy3CknOkZ4iJxeI_txVvpNT5Pg6gY9_pum4vCyLu24OnWWj2P7naZKofgh&et=35&jsv=53"
    type: "admob" afmaNotifyDt: "null" activationOverlayUrl: "null"
    useWebViewLoadUrl: "false"
07-29 15:57:53.984: D/dalvikvm(13468): GC_CONCURRENT freed 3647K, 34% free 7864K/11783K, paused 4ms+4ms, total 53ms
07-29 15:57:53.994: I/Ads(13468): Ad url modified to http://googleads.g.doubleclick.net:80/mads/gma?preqs=0&session_id=2193324013207180751&seq_num=1&u_w=800&msid=com.dimdimsumapp.aniemoticonsfree&js=afma-sdk-a-v6.4.1&bas_off=0&net=wi&app_name=1.android.com.dimdimsumapp.aniemoticonsfree&hl=en&smart_w=full&gnt=0&u_audio=1&kw&u_sd=1&ms=XsSWrnHHD52AS1MoI-uXmIkhfG-hiLlwqgiB_WHMZUeTQmHYO_tZeAu0jgwxMfVMgcybiP5cHOyXxhGWCf-wJYtsCtLk1OJhJa7J-YGAOa1QlZFdC2H53dMvI-QopAY0PWqbYMIqLu7xNfEVIS7E-J618_jQ8i0Ydf3grtdafjeGhyRqxuakG7MadX0_CWU-l2INfQPW3ys0iK85uHegeY7ACM6Xmd5SPBt3KBrsP7fn7uPX2B7cNCuM09YPFgBAfFiA5GlEO-1aY7AI4RxgFkew_EJPDlKk42YxqTeI4xc-m7O7hHcE229JYlNopOkgPboiHXzA82k5j2uoCdZ5JQ&mv=80210010.com.android.vending&format=800x90_mb&oar=0&smart_h=auto&u_h=1232&bas_on=0&ptime=0&u_so=p&imbf=8009&cap=t&output=html&region=mobile_app&u_tz=330&client_sdk=1&ex=1&slotname=a1514342105f35b&kw_type=broad&gsb=wi&caps=inlineVideo_interactiveVideo_mraid1_th_autoplay_mediation_sdkAdmobApiForAds_di&eisu=mJ5gWZo5jcV51kF671otqywVPd9HzqJSLviR5bZ1ubyxvtFnkFW0XeSqgwQnl0L7hK3qzuEy3CknOkZ4iJxeI_txVvpNT5Pg6gY9_pum4vCyLu24OnWWj2P7naZKofgh&et=35&jsv=53
07-29 15:57:53.994: I/Ads(13468): Request scenario: Online server request.
07-29 15:57:54.134: D/dalvikvm(13468): GC_CONCURRENT freed 612K, 34% free 7863K/11783K, paused 6ms+3ms, total 54ms
07-29 15:57:54.134: D/dalvikvm(13468): WAIT_FOR_CONCURRENT_GC blocked 7ms
07-29 15:57:54.774: D/dalvikvm(13468): GC_FOR_ALLOC freed 37K, 34% free 7885K/11783K, paused 45ms, total 45ms
07-29 15:57:54.784: I/dalvikvm-heap(13468): Grow heap (frag case) to 11.956MB for 4194320-byte allocation
07-29 15:57:54.814: D/dalvikvm(13468): GC_CONCURRENT freed <1K, 25% free 11981K/15943K, paused 11ms+1ms, total 25ms
07-29 15:57:54.874: I/[RevMob](13468): Fullscreen loaded
07-29 15:57:54.894: D/webviewglue(13468): nativeDestroy view: 0x64fc17f0
07-29 15:57:54.904: I/Ads(13468): onReceiveAd()
07-29 15:57:54.924: V/dimdimsum - UALib(13468): com.urbanairship.analytics.ActivityStartedEvent -
    {"data":{"class_name":"com.revmob.ads.fullscreen.FullscreenActivity","session_id":"09ea147d-5a9f-4b5d-9bf6-1d7a4511a380"},"type":"activity_started","event_id":"0028a546-73b3-4d72-bf16-42b1fd03330f","time":"1375093674"}
07-29 15:57:55.524: V/dimdimsum - UALib(13468): com.urbanairship.analytics.ActivityStoppedEvent -
    {"data":{"class_name":"com.dimdimsumapp.aniemoticonsfree.MainTabActivity","session_id":"09ea147d-5a9f-4b5d-9bf6-1d7a4511a380"},"type":"activity_stopped","event_id":"a545b947-b649-4c7d-8d9c-3bab9fa5844a","time":"1375093675"}
07-29 15:57:55.524: W/dimdimsum - UALib(13468): Activity com.dimdimsumapp.aniemoticonsfree.MainTabActivity@4114d510 was not manually added during onStart(). Call UAirship.shared().getAnalytics().activityStarted in every activity's onStart() method.
07-29 15:57:55.524: V/dimdimsum - UALib(13468): com.urbanairship.analytics.ActivityStoppedEvent -
    {"data":{"class_name":"com.dimdimsumapp.aniemoticonsfree.view.MenuActivity","session_id":"09ea147d-5a9f-4b5d-9bf6-1d7a4511a380"},"type":"activity_stopped","event_id":"a15bbf00-cbcf-4ce5-9dc2-4132d38d459d","time":"1375093675"}
07-29 15:57:55.524: W/dimdimsum - UALib(13468): Activity com.dimdimsumapp.aniemoticonsfree.view.MenuActivity@4124c630 was not manually added during onStart(). Call UAirship.shared().getAnalytics().activityStarted in every activity's onStart() method.
07-29 15:57:55.534: V/dimdimsum - UALib(13468): com.urbanairship.analytics.ActivityStoppedEvent -
    {"data":{"class_name":"com.dimdimsumapp.aniemoticonsfree.view.MainActivity","session_id":"09ea147d-5a9f-4b5d-9bf6-1d7a4511a380"},"type":"activity_stopped","event_id":"014f5625-1c02-4fa4-af7a-131d2bdd7301","time":"1375093675"}
07-29 15:57:55.534: W/dimdimsum - UALib(13468): Activity com.dimdimsumapp.aniemoticonsfree.view.MainActivity@41504f18 was not manually added during onStart(). Call UAirship.shared().getAnalytics().activityStarted in every activity's onStart() method.
    content://com.dimdimsumapp.aniemoticonsfree.urbanairship.provider/preferences/com.urbanairship.analytics.LAST_SEND/insert
07-29 15:58:23.984: V/dimdimsum - UALib(13468): Notified of change of key com.urbanairship.analytics.LAST_SEND
07-29 15:58:23.994: I/dimdimsum - UALib(13468): Sending 1 events.
07-29 15:58:23.994: V/dimdimsum - UALib(13468): Set Timeout: 60000
07-29 15:58:23.994: V/dimdimsum - UALib(13468): Set Socket Buffer Size: 16384
07-29 15:58:24.004: V/dimdimsum - UALib(13468): GZIP'd: 228 into 200 (expected 57)
07-29 15:58:24.004: I/dimdimsum - UALib(13468): Sending Analytics to: https://combine.urbanairship.com/warp9/
07-29 15:58:24.994: I/dimdimsum - UALib(13468): Warp 9 response: 200
07-29 15:58:26.084: I/Chartboost(13468): INTERSTITIAL 'Default' REQUEST FAILED
07-29 15:59:23.994: V/dimdimsum - UALib(13468): Notifying of change to
    content://com.dimdimsumapp.aniemoticonsfree.urbanairship.provider/preferences/com.urbanairship.analytics.LAST_SEND/insert
07-29 15:59:24.004: V/dimdimsum - UALib(13468): Notified of change of key com.urbanairship.analytics.LAST_SEND
07-29 15:59:24.004: I/dimdimsum - UALib(13468): Sending 11 events.
07-29 15:59:24.004: V/dimdimsum - UALib(13468): Set Timeout: 60000
07-29 15:59:24.004: V/dimdimsum - UALib(13468): Set Socket Buffer Size: 16384
07-29 15:59:24.004: V/dimdimsum - UALib(13468): GZIP'd: 2623 into 688 (expected 655)
07-29 15:59:24.014: I/dimdimsum - UALib(13468): Sending Analytics to: https://combine.urbanairship.com/warp9/
07-29 15:59:29.554: I/dimdimsum - UALib(13468): Warp 9 response: 200

最佳答案

这些是您必须遵循的步骤:

Android 端:

  • 创建示例应用。
  • 将 Urban Airship 的 jar 包含到您的 libs 文件夹中。我认为最新的 jar 是 3.0。
  • 在 Assets 文件夹中创建一个名为:airshipconfig.properties 的文件。

这些是您必须放入 airshipconfig.properties 中的内容:

// app ID of the project in google API's console, called 'Project Number' (in overview page)
gcmSender = 123456789
transport = gcm
developmentAppKey = mqqwqP1gLRkuf-bQBhlwOow
developmentAppSecret = 4kqqwqJfRGmSRBd40bA_Wg
inProduction = false

Android Manifest 必须如下所示:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.jbm.push"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <!-- REQUIRED PERMISSIONS (for Urban Airship GCM) -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.VIBRATE" />

    <!-- 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" />

    <!-- This app has permission to register with GCM and receive message -->
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

    <permission
        android:name="com.jbm.push.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />

    <uses-permission android:name="com.jbm.push.permission.C2D_MESSAGE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <application
        android:name="com.jbm.push.MyApplication"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.jbm.push.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>

        <!-- REQUIRED for Urban Airship GCM -->
        <receiver android:name="com.urbanairship.CoreReceiver" />
        <receiver
            android:name="com.urbanairship.push.GCMPushReceiver"
            android:permission="com.google.android.c2dm.permission.SEND" >
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

                <!-- MODIFICATION REQUIRED - Use your package name as the category -->
                <category android:name="com.jbm.push" />
            </intent-filter>
            <!-- REQUIRED for detecting when the application is upgraded so it can request a new GCM ID -->
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_REPLACED" />

                <data android:scheme="package" />
            </intent-filter>
        </receiver>

        <service
            android:name="com.urbanairship.push.PushService"
            android:label="Push Notification Service" />
        <!-- REQUIRED only with UA Android lib version 2.1.4 and earlier. Do not include PushWorkerService with UA Android lib version 3.0.0+ since it has been deprecated -->
        <service
            android:name="com.urbanairship.push.PushWorkerService"
            android:label="Push Notification Worker Service" />
        <service
            android:name="com.urbanairship.analytics.EventService"
            android:label="Event Service" />

        <!-- This is required for persisting preferences related to push and location -->
        <!-- MODIFICATION REQUIRED - Use your package name + ".urbanairship.provider" in the android:authorities -->
        <provider
            android:name="com.urbanairship.UrbanAirshipProvider"
            android:authorities="com.jbm.push.urbanairship.provider"
            android:exported="false"
            android:multiprocess="true" />
        <!-- END OF REQUIRED ITEMS -->


        <!-- OPTIONAL (for segments support) -->
        <service
            android:name="com.urbanairship.location.LocationService"
            android:label="Segments Service" />

        <!-- OPTIONAL, if you want to receive push, push opened and registration completed intents -->
        <!-- Replace the receiver below with your package and class name -->
        <receiver android:name="com.jbm.push.IntentReceiver" />
    </application>

</manifest>

我的应用程序.java:

public class MyApplication extends Application {

       @Override
       public void onCreate(){
           AirshipConfigOptions options = AirshipConfigOptions.loadDefaultOptions(this);
           UAirship.takeOff(this, options);
           PushManager.enablePush();

       }
    }

这就是您需要从 Android 端获得的全部内容。为了发送推送,您必须在 Urban Airship 站点上正确配置您的应用程序。提供 android 应用程序的包名称和 Google API 控制台项目的服务器 key :按照以下步骤操作:http://docs.urbanairship.com/dashboard/getting_started.html#configuring-services

然后只需从飞艇提供的仪表板发送消息即可。我遵循了本教程:

http://docs.urbanairship.com/build/android.html

关于android - 无法从 Urban Airship 获得推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17921968/

相关文章:

android - Android 直播(http 或 httplive)

android - 更改图库中所选图像的大小

c# - 将 FCM 与 Asp.net web api 2 结合使用

javascript - UA PhoneGap 2.0 插件在 iOS 上无法正确初始化

android - 如何获取使用 Urban Airship 的C2DM授权 token

android - 获取未连接的设备,当我的设备处于网络共享模式时

android - 如何使用Android mapview在模拟器中获取当前位置(纬度和经度)?

iphone - 推送通知徽章没有出现?

iPhone 推送通知与 Ad Hoc 条款相关的问题

android - Urban Airship Android推送获取 "This app is not configured for iOS push"