-4
public void onReceive(Context context, Intent intent) {
context.startService(new Intent(context,MyPhoneStateListener.class));
MyPhoneStateListener lst=new MyPhoneStateListener(context);
TelephonyManager telephonyManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.listen(lst, PhoneStateListener.LISTEN_CALL_STATE);
}
public IBinder onBind(Intent arg0)
{ // TODO Auto-generated method stub return null;
}
}
// class MyPhoneStateListener extends PhoneStateListener
{
//private static final String TAG = "PhoneStateChanged";
Context context;
//Context to make Toast if required
public MyPhoneStateListener(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 Idle i.e no call
Toast.makeText(context, "Phone state Idle", Toast.LENGTH_LONG).show();
break;
case TelephonyManager.CALL_STATE_OFFHOOK: //when Off hook i.e in call //Make intent and start your service here Toast.makeText(context, "Phone state Off hook", Toast.LENGTH_LONG).show();
break;
case TelephonyManager.CALL_STATE_RINGING: //when Ringing Toast.makeText(context, "Phone state Ringing", Toast.LENGTH_LONG).show();
break;
default: break;
} } }
ユーザが電話をかけたときにコールを終了するアプリケーションを開発したい場合は、まずその番号が格納されているかどうかをデータベースから検出する必要があります。それは良いアイデアだろう。サービスや放送受信機を使用するには、私が最後の1週間試していたコードでお手伝いをしてください。私は放送受信機を使用したが、それは受信機を除いて、他の活動strtsでの呼び出しcumsのように役立たなかった。誰かが電話をかけたときに電話を終了する
<receiver
android:exported="true"
android:name=".receiver.OutgoingCall" >
<intent-filter android:priority="0" >
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
次に従ってください:あなたは、あなたのマニフェストに受信機を登録する必要が
:
誰があなたの質問を編集して、私の親愛なる友人になるのですか? –
ダイヤル番号がリストにないときに発信コールをドロップしますか? – kingston