您好我想將傳入號碼記錄到數據庫。我正在使用廣播接收機來收聽電話和使用電話狀態監聽器。 這裏是我的代碼多次調用電話狀態偵聽器
ThePhoneStateListener.java
package com.example.netlogger.Receiver;
import android.content.Context;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
public class ThePhoneStateListener extends PhoneStateListener {
Context context;
public ThePhoneStateListener(Context context) {
this.context = context;
}
@Override
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
if (state == TelephonyManager.CALL_STATE_OFFHOOK) {
Log.d("TAGG", "Insert: " + incomingNumber);
}
}
}
CallActionReceiver.java
package com.example.netlogger.Receiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.Toast;
public class CallActionsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
TelephonyManager manager = (TelephonyManager) arg0
.getSystemService(arg0.TELEPHONY_SERVICE);
manager.listen(new ThePhoneStateListener(arg0),
android.telephony.PhoneStateListener.LISTEN_CALL_STATE);
}
}
Menifest.xml
<receiver android:name="com.example.netlogger.Receiver.CallActionsReceiver">
<intent-filter android:priority="2147483647">
<action android:name="android.intent.action.PHONE_STATE"/>
</intent-filter>
<intent-filter android:priority="2147483647">
<action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
</intent-filter>
</receiver>
在ThePhoneStateListener
onCallStateChanged()爲什麼它被稱爲多次。我想只將一次傳入的數字插入數據庫。
這有什麼靜態變量使用使用callactionlistener – stinepike