2012-05-01 7 views
0

ステータスバーからSMS通知をクリックしたときにステータスバーにSMSの通知が表示されます。 ViewMessageListActivity(私の会話ログ)。このアクティビティを開くにはどうすればいいですか?あなたはViewMessageListActivity活動の意図を作成する必要がステータスバーから通知をクリックすると、どのように「ViewMessageListActivity」を起動するのですか?

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.telephony.gsm.SmsMessage; 
import android.widget.Toast; 

import android.app.Notification; 
import android.app.NotificationManager; 
import android.app.PendingIntent; 

import android.app.Activity; 
import android.app.Notification; 
import android.app.NotificationManager; 
import android.app.PendingIntent; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 

public class SmsReceiver extends BroadcastReceiver { 

static final String ACTION = "android.provider.Telephony.SMS_RECEIVED"; 
int notificationID = 1; 

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

     NotificationManager mNotificationManager = 
     (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
     if (intent.getAction().equals(ACTION)) { 

      StringBuilder sb = new StringBuilder(); 
      String from = new String(); 
      String body = new String(); 

      Bundle bundle = intent.getExtras(); 
      if (bundle != null) { 
       Object[] pdus = (Object[]) bundle.get("pdus"); 
       for (Object pdu : pdus){ 
       SmsMessage messages = SmsMessage.createFromPdu((byte[]) pdu); 
       sb.append(messages.getDisplayOriginatingAddress()); 
       from = messages.getDisplayOriginatingAddress(); 
       sb.append(messages.getDisplayMessageBody()); 
       body= messages.getDisplayMessageBody(); 

       //Log.i(LOG_TAG, "[SMSApp] onReceiveIntent: " + sb); 
       //abortBroadcast(); 
       }// end for 
      }//end if 

      int icon = R.drawable.stat_notify_sms; 
      CharSequence tickerText = from + ": " + body; 
      long when = System.currentTimeMillis(); 

      Notification notification = new Notification(icon, tickerText, when); 
      CharSequence contentTitle = "New Cybernetx Secure Text Message"; 
      CharSequence contentText = from + " " + body; 

      Intent notificationIntent = new Intent(); 
      PendingIntent contentIntent = 
      PendingIntent.getActivity(context, 0, notificationIntent, 0); 

      notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent); 
      notification.vibrate = new long[] { 100, 250, 100, 500}; 
      notification.flags |= Notification.FLAG_AUTO_CANCEL; 
      mNotificationManager.notify(notificationID, notification); 

      // intent.setAction(SendReceiveService.RECEIVE_SMS_ACTION); 
      //  intent.setClass(arg0, ViewMessageListActivity.class); 
      //  intent.putExtra("notificationID", notificationID); 
      //  arg0.startService(intent); 


       // PendingIntent contentIntent = 
       //  PendingIntent.getActivity(arg0, 0, i, 0); 

      /* Start the Main-Activity */ 
      Intent i = new Intent(context, ViewMessageListActivity.class); 
      i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(i); 


     }//end if 

    } 

}

答えて

1

Intent notificationIntent = new Intent(context,ViewMessageListActivity.class); 
PendingIntent contentIntent =PendingIntent.getActivity(context, 0, notificationIntent, 0); 
.... 

さらに最後の3つのステートメントを削除します。

0

notificationIntentは空ですが問題です。

ここ
Intent notificationIntent = new Intent(context, ViewMessageListActivity.class); 

がPlayストアでの私のアプリケーションの私の1から、より完全な例です(私はそれが:-Dの作品を知っている):

notification.setLatestEventInfo(NotificationService.this, getResources().getString(R.string.app_name), "Select to launch", IntentUtils.getMainActivityPendingIntent(this)); 

IntentUtilsはヘルパーですあなたがしようViewMessageListActivityをされると仮定すると、私はクラスを使用して終了:

public static Intent getMainActivityIntent(Context context) { 
    return new Intent(context, MainActivity.class); 
} 

public static PendingIntent getMainActivityPendingIntent(Context context) { 
    return PendingIntent.getActivity(context, 0, getMainActivityIntent(context), 0); 
} 

私はもともと投稿されたものとほとんど同じです。

+0

私は解決策を試しましたが、それでも動作しません。 – user1024882

+0

ViewMessageListActivityはアプリケーションのアクティビティですか、または外部アプリケーションに属していますか?私のコードを更新して、自分のアプリケーションの中でもっと実用的な例を表示します。 –

関連する問題