3

こんにちは、プッシュ通知のポップアップを表示し、メッセージ データをローカル データベースに保存したいと考えています。Pushwoosh jar を統合しました。私のコードは

onCreate : if(!prefrences.getString("push", "").equalsIgnoreCase(""))
                {
                    Log.w("already registered", "already registered");
                    Log.e("Token", prefrences.getString("push", ""));
                }
            else
                { 
                //*** Registers For Push Woosh Notifications*//*
                    PushGCMIntentService p=new PushGCMIntentService();
                    PushManager push=new PushManager(this, APP_ID, SENDER_ID);
                    push.onStartup(this);
                    checkMessage(getIntent());
                }
@Override
protected void onNewIntent(Intent intent)
    {
        super.onNewIntent(intent);
        Log.e("ON NEW INTENT", "called");
        setIntent(intent);
        checkMessage(intent);
        setIntent(new Intent());
    }
private void checkMessage(Intent intent) 
    {

        if (null != intent)
            {
                if (intent.hasExtra(PushManager.PUSH_RECEIVE_EVENT))
                    {

                        Log.e("push message is " ,  intent.getExtras().getString(PushManager.PUSH_RECEIVE_EVENT));

                    }
                else if (intent.hasExtra(PushManager.REGISTER_EVENT))
                    {
                        Log.e("register",""+PushManager.REGISTER_EVENT);

                        //Toast.makeText(getApplicationContext(), ""+intent.getExtras().getString(PushManager.REGISTER_EVENT), Toast.LENGTH_SHORT).show();
                         s=intent.getExtras().getString(PushManager.REGISTER_EVENT);
                        Log.e("push message" ,  intent.getExtras().getString(PushManager.REGISTER_EVENT));
                        SharedPreferences pref =getSharedPreferences("Push",MODE_PRIVATE);
                        Editor edit=pref.edit();
                        edit.putString("push", s);
                        edit.commit();
                        Log.e("push token - - - >" , pref.getString("push", "Novalue"));


                    }
                else if (intent.hasExtra(PushManager.UNREGISTER_EVENT))
                    {
                        Log.e("unregister","-------");

                    }
                else if (intent.hasExtra(PushManager.REGISTER_ERROR_EVENT))
                    {
                        Log.e("register error","----------");
                    }
                else if (intent.hasExtra(PushManager.UNREGISTER_ERROR_EVENT))
                    {
                        Log.e("unregister error","-----------");
                        //  Toast.makeText(getApplicationContext(), "DFGDHDSHshsh", Toast.LENGTH_LONG).show();
                    }
                resetIntentValues();
            }


    private void resetIntentValues()
{
    Intent mainAppIntent = getIntent();

    if (mainAppIntent.hasExtra(PushManager.PUSH_RECEIVE_EVENT))
    {
        mainAppIntent.putExtra(PushManager.PUSH_RECEIVE_EVENT, (String) null);
    }
    else if (mainAppIntent.hasExtra(PushManager.REGISTER_EVENT))
    {
        mainAppIntent.putExtra(PushManager.REGISTER_EVENT, (String) null);
    }
    else if (mainAppIntent.hasExtra(PushManager.UNREGISTER_EVENT))
    {
        mainAppIntent.putExtra(PushManager.UNREGISTER_EVENT, (String) null);
    }
    else if (mainAppIntent.hasExtra(PushManager.REGISTER_ERROR_EVENT))
    {
        mainAppIntent.putExtra(PushManager.REGISTER_ERROR_EVENT, (String) null);
    }
    else if (mainAppIntent.hasExtra(PushManager.UNREGISTER_ERROR_EVENT))
    {
        mainAppIntent.putExtra(PushManager.UNREGISTER_ERROR_EVENT, (String) null);
    }

    setIntent(mainAppIntent);
}

メッセージを受け取った後、「(intent.hasExtra(PushManager.PUSH_RECEIVE_EVENT))」をトリガーしてメッセージをポップアップできるようにする必要がありますが、通知バーの通知をクリックするまでメッセージは表示されません。また、メッセージに URL が含まれている場合、通知バーの通知をクリックしてもトリガーされません。私のマニフェストファイルは次のとおりです:

    <activity android:name=".SplashScreen"
            android:launchMode="singleTop"
            android:noHistory="true"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="adjustPan|adjustResize" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="My_APP_PACAKGE_NAME.MESSAGE" />
<category android:name="android.intent.category.DEFAULT" />
            </intent-filter></activity>
<activity android:name="com.arellomobile.android.push.PushWebview" />
<activity android:name="com.arellomobile.android.push.MessageActivity" />
<activity android:name="com.arellomobile.android.push.PushHandlerActivity" />
<receiver android:name="com.google.android.gcm.GCMBroadcastReceiver"
          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" />
<category android:name=" My_APP_PACAKGE_NAME " />
            </intent-filter>
        </receiver>
<service android:name="com.arellomobile.android.push.PushGCMIntentService" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
<permission
        android:name=" My_APP_PACAKGE_NAME.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />
<uses-permission android:name=" My_APP_PACAKGE_NAME.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

助けてください。事前にサンクス。

4

0 に答える 0