2011-11-26 91 views
2

我正在做一個android應用程序。在我的項目中,我正在使用廣播接收器來檢查手機狀態。使用以下代碼我正在檢查我的手機狀態。控制廣播活動

@Override 
public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 
    Bundle bun=intent.getExtras(); 
    if(bun!=null){ 
     String state=bun.getString(TelephonyManager.EXTRA_STATE); 
     Log.w("DEBUG", state); 
     if(state.equals(TelephonyManager.EXTRA_STATE_RINGING)){ 
      String phoneno=bun.getString(TelephonyManager.EXTRA_INCOMING_NUMBER); 
      Toast.makeText(context, "phone no. is"+phoneno, Toast.LENGTH_LONG).show(); 
     } 
    } 
} 

現在我想控制這個應用程序的活動。我的意思是使用一個按鈕,我已經開始廣播,並使用一個關閉按鈕,我必須關閉廣播運行。第二個問題是我想運行應用程序時,應用程序也處於關閉狀態。所以我認爲我已經從活動中調用服務,並且該服務使該廣播接收器在後臺運行。如果我想停止我的應用程序處理打開的應用程序,並單擊按鈕關閉。幫助我的朋友..

回答

0

可以,

當點擊 註冊您的廣播

IntentFilter filter=new IntentFilter(TelephonyManager.EXTRA_STATE); 
    registerReceiver(new BroadcastReceiverClass.class, filter); 

當點擊關閉 未註冊的廣播

unregisterReceiver(new BroadcastReceiverClass()); 
+0

不要忘了接受作爲答案,如果它解決了你的問題 – Sameer

+0

我把這些行我的活動開始按鈕onclick方法.. IntentFilter filter = new IntentFilter(TelephonyManager.EXTRA_STATE); registerReceiver(new bradcastdemo(),filter); .... bradcastdemo是我的廣播名稱....我的廣播是.. <類別機器人:名稱= 」android.intent.category.LAUNCHER「/> <接收機機器人:名稱=」。bradcastdemo」 > – sarath

+0

右。所以我認爲它應該工作 – Sameer