4

シンプルな BroadcastReceiver を実装したいのですが、着信があるとトリガーされます。ただし、onReceive がトリガーされないようです (LogCat を非常に注意深く確認しましたが、出力はありません)。何が問題だったのでしょうか? Tks 私のクラス:

public class MyPhoneReceiver extends BroadcastReceiver {
    private static final String TAG = "DEBUG";

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.e(TAG, "Test loggiiiiiiiiiiiiiiiiiiiiiiiiing!");

    }

}

私のマニフェストファイル:

<?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="tung.le.android.receiver.phone"
    android:versionCode="1"
    android:versionName="1.0" >


    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
         <receiver android:name=".MyPhoneReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.PHONE_STATE" >
                </action>

            </intent-filter>
        </receiver>

    </application>
    <uses-sdk android:minSdkVersion="15" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" >
    </uses-permission>

</manifest>
4

4 に答える 4

1

この BroadcastReceiver ソリューションで私が経験した問題は、アクティブな通話中に発生する通話をトリガーできないことです。私が電話で人と話しているときに、誰かが別の回線で私に電話をかけたとき (そして私はその 2 番目の電話を受け入れたとき)、実際には変化した状態はありません。電話は以前はオフフックでしたが、2 番目の電話に応答してもオフフックのままです。

これまでに見つけた唯一の解決策は、android.provider.Calls のオブザーバーを登録し、データが変更されるたびにそこから最新のエントリを取得することです。誰かがより良い解決策を知っている場合は、私に知らせてください。

于 2014-03-23T11:37:21.310 に答える
0

コード内にレシーバーを登録していますか??。そうでない場合は、レシーバーを manifest.xml に登録する必要があります。

于 2012-06-28T11:08:18.347 に答える
0

プロジェクトには少なくとも 1 つのアクティビティが必要です。アプリが起動したらすぐに終了しても。何もする必要はありませんが、インストール後に少なくとも 1 回は起動する必要があります。

于 2015-01-16T20:22:50.550 に答える