我要聽來電和撥出的電話,這個過程應該運行作爲service.I製成,其做工精細識別呼入和呼出一個活動,但我需要將其更改爲服務,以便它可以運行到background.I不能找出如何改變it.My活動如下:想聽聽來電和撥出呼叫
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TelephonyManager mTelephonyMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
mTelephonyMgr.listen(new TeleListener(), PhoneStateListener.LISTEN_CALL_STATE);
}
class TeleListener extends PhoneStateListener
{
public void onCallStateChanged(int state, String incomingNumber)
{
super.onCallStateChanged(state, incomingNumber);
switch (state)
{
case TelephonyManager.CALL_STATE_IDLE:
//CALL_STATE_IDLE;
Toast.makeText(getApplicationContext(), "CALL_STATE_IDLE", 10000).show();
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
//CALL_STATE_OFFHOOK;
Toast.makeText(getApplicationContext(), "CALL_STATE_OFFHOOK", 10000).show();
break;
case TelephonyManager.CALL_STATE_RINGING:
//CALL_STATE_RINGING
Toast.makeText(getApplicationContext(), "CALL_STATE_RINGING", 10000).show();
break;
default:
break;
}
}
}
}
我的第二個問題可我沒有一個活動安裝服務爲我的電話。
另一個活動**從ICS向上,你需要一個活動啓動您的服務** 如果我要使用啓動此服務ACTION_BOOT_COMPLETED呢?我不想使用任何活動。 – Anirban 2013-04-24 02:03:38
對於ICS和高達你需要從活動啓動完成後調用你的接收器啓動服務一次。我想這是出於安全原因。 – 2013-04-24 02:09:02
如果我打算讓這個活動來服務我應該在哪裏把這個 'TelephonyManager mTelephonyMgr =(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE)另一件事; mTelephonyMgr.listen(新的TeleListener(),PhoneStateListener.LISTEN_CALL_STATE);' – Anirban 2013-04-24 02:11:09