2
Service
에 PhoneStateListener
을 만들었습니다. Toast
메시지는 정상적으로 작동하지만 수신 전화에서 다른 Activity
을 실행하고 싶습니다. 그러나 그것은 시작되지 않습니다. 이 수업에 어떤 문제가 있습니까? 다음은 코드 Activity
입니다. DialogAct
은 비어있는 Activity
레이아웃입니다.통화 활동 onCallStateChange from service
public class GSMListenerService extends Service {
private TelephonyManager tm;
@Override
public void onCreate() {
super.onCreate();
tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
tm.listen(mPhoneListener, PhoneStateListener.LISTEN_CALL_STATE);
}
private PhoneStateListener mPhoneListener = new PhoneStateListener() {
public void onCallStateChanged(int state, String incomingNumber) {
try {
switch (state) {
case TelephonyManager.CALL_STATE_RINGING:
Intent i = new Intent(GSMListenerService.this,DialogAct.class);
startActivity(i);
Toast.makeText(GSMListenerService.this, "CALL_STATE_RINGING: ", Toast.LENGTH_SHORT).show();
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
Toast.makeText(GSMListenerService.this, "CALL_STATE_OFFHOOK", Toast.LENGTH_SHORT).show();
break;
case TelephonyManager.CALL_STATE_IDLE:
Toast.makeText(GSMListenerService.this, "CALL_STATE_IDLE", Toast.LENGTH_SHORT).show();
break;
default:
Toast.makeText(GSMListenerService.this, "default", Toast.LENGTH_SHORT).show();
Log.i("Default", "Unknown phone state=" + state);
}
} catch (Exception e) {
Log.i("Exception", "PhoneStateListener() e = " + e);
}
}
};
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
}
아니요, 도움 안됨 –
귀하의 매니 페스트 파일에서 DialogAct 활동을 신고하는 것을 잊지 않 았습니까? 당신의 logcat 말하는 무엇입니까? – biegleux
DialogAct를 선언했지만 잘못된 경로를 파일에 넣었으므로 정답입니다. 감사합니다! –