0

私は Android アプリを作成しており、PushBots 通知サービスに登録しており、電話で通知を正常に受信しています。

しかし、通知をクリックしても何も起こりません..

私が欲しいのは、ユーザーが通知をクリックしたときに MainActivity を開きたいということです。

3 つの Java ファイルを作成しました。

1)MainActivity.java

2)MyApplication.java

3)customPushReceiver.java

私の質問は、通知をクリックしたときに MainActivity が開始されるコードをどこに記述すればよいですか?? そして、どのコードを書くべきですか??

これが私の3つのクラスコードすべてです。

1) MainActivity.java コード -

 package com.example.ptest2;

import com.pushbots.push.Pushbots;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

private static final Context Context = null;

private String SENDER_ID="My_SENDER_ID";
private String PUSHBOTS_APPLICATION_ID="MY_Application_ID";


@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


}



}

2) MyApplication.java コード -

package com.example.ptest2;

import android.widget.Toast;

import com.pushbots.push.Pushbots;



public class MyApplication extends android.app.Application 
{
 private String SENDER_ID="MY_SENDER_ID";
private String PUSHBOTS_APPLICATION_ID="MY_Application_ID";

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


        Pushbots.init(this, SENDER_ID,PUSHBOTS_APPLICATION_ID);

     }

}

3) customPushReceiver.java コード -

package com.example.ptest2;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.TaskStackBuilder;
import android.content.BroadcastReceiver;

import java.awt.font.TextAttribute;
import java.util.HashMap;
import com.pushbots.push.Pushbots;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Vibrator;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;
import android.content.Context;
import android.content.Intent;

public class customPushReceiver extends BroadcastReceiver 
{
 private static final String TAG = "customPushReceiver";


@Override
public void onReceive(Context context, Intent intent) 
{

    Toast.makeText(context, "Your time is up", Toast.LENGTH_LONG).show();




     Vibrator v;
     v=(Vibrator)context.getSystemService(Context.VIBRATOR_SERVICE);
     v.vibrate(3000);
     }
 }

onReceive メソッドは正常に実行されています。

私の質問は、通知をクリックしたときに MainActivity が開始されるコードをどこに記述すればよいですか?? そして、どのコードを書くべきですか??

4

2 に答える 2

3

これは、まさにそれを行う完全なビデオチュートリアルです。 http://www.youtube.com/watch?v=fK46FJahvs0

于 2013-10-29T09:10:01.183 に答える
1

customPushReceiver.java クラスに generateNotification() メソッドを作成できます。onReceive() で generateNotification() を呼び出します。

    private void generateNotification(Context context, String message,
        long when, String query) {

    int icon = R.drawable.icon;
         long when = System.currentTimeMillis();
    String appname = context.getResources().getString(R.string.app_name);
    NotificationManager notificationManager = (NotificationManager) context
            .getSystemService(Context.NOTIFICATION_SERVICE);
    int currentapiVersion = android.os.Build.VERSION.SDK_INT;
    Notification notification;

    Intent intent = new Intent(context, MainActivity.class);
    PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
            intent, 0);

        if (currentapiVersion < android.os.Build.VERSION_CODES.HONEYCOMB) {
            notification = new Notification(icon, message, when);
            notification.setLatestEventInfo(context, appname, message,
                    contentIntent);
            notification.flags = Notification.FLAG_AUTO_CANCEL;
            notificationManager.notify((int) when, notification);

        } else {
            NotificationCompat.Builder builder = new NotificationCompat.Builder(
                    context);
            notification = builder.setContentIntent(contentIntent)
                    .setSmallIcon(icon).setTicker(appname).setWhen(when)
                    .setAutoCancel(true).setContentTitle(appname)
                    .setContentText(message).build();

            notificationManager.notify((int) when, notification);

        }

}

お役に立てれば。

于 2013-10-21T09:45:17.273 に答える