2

電話の処理をテストしたいので、小さなアプリを作成しました。これは、着信/発信の電話にログを書き込む必要があります。ブロードキャストレシーバーは次のとおりです。

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

public class IncomingCallReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {

    Log.d("DEBUGING", "INCOMING CALL DETECTED !!");

     }
}

2番目のもの:

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

public class OutgoingCallReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {

    Log.d("DEBUGING", "OUTGOING CALL DETECTED !!");

     }
}

そして最後にマニフェスト

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.callrec"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="15" />

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

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

そして問題は、私の受信者が決して呼び出されないことです....そして、私には理由がわかりません.誰か助けてもらえますか?

4

1 に答える 1

2

どうやら 3.1+ から、レシーバーは、ユーザーがアクティビティで少なくとも 1 回何かを行った後にのみ動作を開始するため、アクティビティのないアプリは動作しません。

于 2012-07-25T17:49:36.787 に答える