電話機のサービス状態がいつ変化するかを判断するには、アプリケーション全体のリスナーが必要です。私はオンラインですべての例を見てきましたが、行をコピーし、マニフェストを修正しました。何もできません。PhoneStateListenerを動作させることはできません。私は例を見てきました
電話状態のリスナーはアクティビティにいなければなりませんか?私は電話状態の変化を聞くためにいくつかの普通の古いクラスを持つことができますか?
これは非常にイライラです。私は私のクラスで
...
private class ServiceReceiver extends BroadcastReceiver{
@Override
public void onReceive(android.content.Context context, Intent intent) {
Log.i(TAG, "onReceive");
MyPhoneStateListener qpsl = new myPhoneStateListener();
TelephonyManager tm = (TelephonyManager)context.getSystemService(android.content.Context.TELEPHONY_SERVICE);
tm.listen(qpsl, PhoneStateListener.LISTEN_SERVICE_STATE);
}
}
private class MyPhoneStateListener extends PhoneStateListener{
public void onServiceStateStateChanged(ServiceState serviceState){
Log.i(TAG, "ServiceState = " + serviceState.getState();
}
私は放送受信機とphonestateのマニフェストを変更する必要があります知っています。どこ?私はこのアプリケーションを幅広くしたい。
これは私がサービス状態の変更をリッスンできるように、私が欠けているものを私が持っているすべてのコードは、誰かが私を見ることができますか?
この作業を行うためにマニフェストには何を入力する必要がありますか?受信機を登録するにはどうすればいいですか? –
私が言ったように、電話状態は伝統的な「放送」ではないので。それが1つであれば、あなたはそれをマニフェストに登録し、あなたの 'BroadcastReceiver'が興味を持っている放送の意図について言及しなければならないでしょう。電話状態リスナーを"登録 "する正しい方法は' TelephonyManager'の 'listen () 'メソッドを呼び出します。これでコードが呼び出されないので、このコードを 'onReceive()'から移動するだけです。 SOにこの答えをチェック - http://stackoverflow.com/a/8657099/570930 – curioustechizen