0

新しいアプリを起動しようとしていますが、電話の状態の変化について知る必要があります...何らかの理由で(私はこれに不慣れです)、変化のブロードキャストをキャッチできません。それが私のコードです:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    Log.d("TAG","yyyyyyyyyyyy");
}
}

それが私のマニフェストです:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <receiver
        android:name=".MyReceiver">
         <intent-filter>
            <action android:name="android.intent.action.PHONE_STATE"/>
        </intent-filter>
    </receiver>
</application>

ご覧のとおり...非常に簡単です。しかし、LogCatのonReceiveにログが表示されません。誰もが理由を知っていますか?ありがとう!

4

2 に答える 2

1

これこれにより、BroadcastReceiverは何も受信しません。解決策は、インストール後、受信を開始する前に少なくとも1回は開始する、アプリの単純なアクティビティを設計することです。

于 2012-07-26T17:35:54.013 に答える
0

マニフェストベースのブロードキャストレシーバーを登録するには、アプリドロワーからアプリを開いて実行する必要があります。そうしないと、Androidからレシーバーが呼び出されません。したがって、基本的に、開始できるアクティビティが少なくとも1つ必要です。何もする必要はなく、少なくとも1回は開始する必要があります。あなたはそれをやりました?

これはAndroid3.0以降に当てはまります

于 2012-07-26T16:14:18.593 に答える