電話がいつかかっているかを知るためにアプリが必要です。
別の電話が呼び出されているとき、および呼び出しに応答したときにも機能するはずです。接続が開始したときと停止したとき(ダイヤルや呼び出し音などではない)に正確に通知を受け取るためにアプリが必要です。
これはどういうわけか可能ですか?
電話がいつかかっているかを知るためにアプリが必要です。
別の電話が呼び出されているとき、および呼び出しに応答したときにも機能するはずです。接続が開始したときと停止したとき(ダイヤルや呼び出し音などではない)に正確に通知を受け取るためにアプリが必要です。
これはどういうわけか可能ですか?
以下のように、ブロードキャストクラスを使用してこれを実現できます。
public class PhoneStateBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
TelephonyManager telephonyManager = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.listen(new CustomPhoneStateListener(context),
PhoneStateListener.LISTEN_CALL_STATE);
}
}
class CustomPhoneStateListener extends PhoneStateListener {
// private static final String TAG = "PhoneStateChanged";
Context context; // Context to make Toast if required
public CustomPhoneStateListener(Context context) {
super();
this.context = context;
}
@Override
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
//WHEN PHONE WILL BE IDLE
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
// when Off hook i.e in call
break;
case TelephonyManager.CALL_STATE_RINGING:
// when Ringing
break;
default:
break;
}
}
}
これがお役に立てば幸いです。