2015-04-04 90 views
0

當我收到消息時是否可以打開android應用程序? 如果可能的話,是否有一個選項,只有當它是一個特定的號碼發送消息,然後打開應用程序? 或者,當您打開郵件時,另一個選項,然後打開應用程序?消息傳出時自動打開應用程序

+0

可以註冊傳入消息的廣播接收器[鏈接](http://stackoverflow.com/questions/4117701/android-sms-broadcast-receiver),從消息拉動信息,如果你決定需要啓動你的應用程序。 – AndroidEx 2015-04-04 21:13:07

+0

我不明白你能再解釋一次嗎? – Oster 2015-04-05 04:38:34

+0

好吧,你必須看看廣播接收機是如何工作的。上面的鏈接給出了一個與你的案例相關的好例子,你也可以使用官方的[參考](http://developer.android.com/reference/android/content/BroadcastReceiver.html)和其他來源。但簡言之,系統在某些事件發生時(例如,傳入的文本消息)廣播意圖,並且可以註冊廣播接收器以攔截包含關於事件的附加信息的這些意圖。在'BroadcastReceiver.onReceive'方法中,你可以做任何你喜歡的事情,例如啓動你的應用程序的一個活動。 – AndroidEx 2015-04-05 04:51:58

回答

0

這是不可能的。你可以發送通知,但用戶是誰打開應用程序觸摸通知。

+0

當用戶打開特定號碼的消息時,我該如何發送通知? – Oster 2015-04-05 04:40:14

0

使用下面的代碼,您可以檢測傳入消息,並可以打開特定消息上的活動。如果您正在使用此代碼,請確保您正在將此接收器註冊到您的清單中並採取措施。並添加權限來檢測傳入的消息。

public class BroadCast extends BroadcastReceiver{ 

    @Override 
    public void onReceive(Context arg0, Intent arg1) { 

     Bundle b=arg1.getExtras(); 
     if(b!=null) 
     { 
      String state = b.getString(TelephonyManager.EXTRA_STATE); 

      String phoneNumber = b.getString(Intent.EXTRA_PHONE_NUMBER); 

      if(phoneNumber.equalsIgnoreCase("Mobile Number")) 
      { 
       Intent in=new Intent(arg0, YourActivity.class); 
       in.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
       arg0.startActivity(in); 
      } 


     } 
    } 

} 
相關問題