2013-07-19 90 views
-1

你好即時通訊使用廣播reciever試圖找出什麼時候一個電話是「製造」,並在電話「製成」之後,當制定的電話是「連接」我搜索周圍,並提出了這個代碼,但這個工程時recievng呼叫和撥打電話,當電話是由連接所有我真正需要的是,在指導我在這的任何幫助表示讚賞,感謝您的時間如何知道何時打電話和連接?

receiver = new BroadcastReceiver() { 
       @Override 
       public void onReceive(Context context, Intent intent) { 
        String action = intent.getAction(); 
        TelephonyManager telephonyManager = (TelephonyManager) context 
          .getSystemService(Context.TELEPHONY_SERVICE); 

        if(action.equals(android.telephony.TelephonyManager.ACTION_PHONE_STATE_CHANGED)){ 
         //action for phone state changed 
         Toast.makeText(context, "Receiver call status", Toast.LENGTH_SHORT).show(); 
         Log.d("reciever","entered keep going"); 
         if(telephonyManager.getDataState() == TelephonyManager.DATA_CONNECTED){ 
          Toast.makeText(context, "Receiver call connected", Toast.LENGTH_SHORT).show(); 
         }else{ 
          Toast.makeText(context, "Receiver call not connected", Toast.LENGTH_SHORT).show(); 
         } 
        }  
       } 
      }; 
      IntentFilter filter = new IntentFilter(); 

      filter.addAction(android.telephony.TelephonyManager.ACTION_PHONE_STATE_CHANGED); 

      registerReceiver(receiver,filter); 

回答

2

Here你可以找到的所有狀態電話,只是使處理這個狀態,像我這樣做:

public class PhoneState extends PhoneStateListener { 

@Override 
public void onCallStateChanged(int state, String incomingNumber) { 
    switch (state) { 
     case TelephonyManager.CALL_STATE_IDLE: 
      //Some Action 
      break; 
     case TelephonyManager.CALL_STATE_OFFHOOK: 
      break; 
     case TelephonyManager.CALL_STATE_RINGING: 
      //Some Action 
      break; 
     //case TelephonyManager.ANOTHER_STATE: ... 
    } 
    } 
} 
相關問題