0

私のアプリでは、着信を検出したいのですが、カスタム レイアウトでデフォルトの着信レイアウトを非表示にしたいのですが、今のところ着信の状態を取得できましたが、デフォルトの着信画面を非表示にすることはできません..以下は私のコードと私のAndroidマニフェストファイルです...どんな助けでも大歓迎です..

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    Log.i("DEBUG", "on recive called");
    String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
    String number = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);

    if (TelephonyManager.EXTRA_STATE_RINGING.equals(state))
    {
        abortBroadcast();
        Log.d("MPR", "Its Ringing [" + number + "]");
        //start activity
        Intent i = new Intent();
        i.setClassName("com.ezest.callerid", "com.ezest.callerid.CustomCallActivity");
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    }

    if (TelephonyManager.EXTRA_STATE_IDLE.equals(state))
    {
        Log.d("MPR", "Its Idle");
    }
    if (TelephonyManager.EXTRA_STATE_OFFHOOK.equals(state))
    {
        Log.d("MPR", "Its OffHook");
    }

}

マニフェスト

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >

    <receiver android:name="MYPhoneStateListener">
        <intent-filter android:priority="999999">
            <action android:name="android.intent.action.PHONE_STATE"></action>
        </intent-filter>
    </receiver>
    <activity
        android:label="@string/app_name"
        android:name=".CallerIDActivity" >
        <intent-filter >
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name="CustomCallActivity">
    </activity>

</application>
4

1 に答える 1

0

定義されたアクションが発生すると、Android オペレーティング システムは、このアクションに対して定義されたすべてのブロードキャスト レシーバーにブロードキャストを送信します。優先順位に従ってこのジョブを実行します。私はあなたがそれをやったことがわかります。ブロードキャストをキャンセルしたい場所にそのコードをコピーします。

abortBroadcast()

Android オペレーティング システムは、他のブロードキャスト レシーバーへのブロードキャストを停止します

于 2012-07-20T13:00:35.207 に答える