Ich versuche, den Telefonstatus-Rundfunkempfänger in einem Service zu registrieren und aufzuheben, aber sein überhaupt nicht feuernd, habe ich die Telefonstatuserlaubnis in manifest auch erklärt.BraodCastReceiver feuert nicht für Telefonstatus Hörer android
Hier ist mein Rundfunkempfänger.
public class IncomingCalls extends BroadcastReceiver {
private static String mLastState;
@Override
public void onReceive(Context context, Intent intent) {
Log.i(ApplicationUtils.TAG, "IncomingCalls");
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
if (!state.equals(mLastState)) {
mLastState = state;
Log.i(ApplicationUtils.TAG, state);
if (mLastState==TelephonyManager.EXTRA_STATE_RINGING) {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNumber, null, CallListenService.MESSAGE, null, null);
}
}
}
}
und hier ist der Dienst, der die Sendung regitser und abmeldet.
public class CallListenService extends Service {
private static final String ACTION = "android.intent.action.PHONE_STATE";
static IncomingCalls myReceiver;
public static String MESSAGE;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
final IntentFilter theFilter = new IntentFilter();
theFilter.addAction(ACTION);
myReceiver = new IncomingCalls();
// Registers the receiver so that your service will listen for
// broadcasts
this.registerReceiver(myReceiver, theFilter);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
MESSAGE = intent.getStringExtra(KEY_MESSAGE);
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
// Do not forget to unregister the receiver!!!
this.unregisterReceiver(myReceiver);
}
}
Das ist, wie ich den Dienst
Intent intent1 = new Intent(context, CallListenService.class);
intent1.putExtra(KEY_MESSAGE, msg);
context.startService(intent1);
starten Es wurde vor der Arbeit, aber es ist überhaupt nicht funktioniert jetzt.
wo rufst du 'startService()'? – nandsito
in einem anderen Rundfunkempfänger. –