Простой BroadcastReceiver не будет работать - PullRequest
0 голосов
/ 19 января 2012

Я пытаюсь разработать простой Broadcastreceiver.

Вот мой код:

public class MyClass extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        Bundle extras = intent.getExtras();
        if (extras != null) {
            String state = extras.getString(TelephonyManager.EXTRA_STATE);
            Log.w("DEBUG", state);
            if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
                String phoneNumber = extras
                        .getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
                Toast.makeText(context, phoneNumber, Toast.LENGTH_LONG).show();
                Log.w("DEBUG", phoneNumber);
            }
        }
    }
}

Manifest.xml:

<uses-sdk android:minSdkVersion="10" />

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

        <receiver android:name=".MyClass">

            <intent-filter>
                <action android:name="android.intent.action.PHONE_STATE"></action>
            </intent-filter>
        </receiver>
    </application>

Все, что я хочу сделать, - это'toast' номер, по которому я звоню (или когда мне звонят).

Разве это не работает таким образом?Это единственный код, который я использую на данный момент.Только один Broadcastreceiver работает в фоновом режиме и запускает телефонное событие.

Спасибо, prexx

1 Ответ

1 голос
/ 19 января 2012

Вам необходимо добавить это разрешение в манифест:

<uses-permission android:name="android.permission.READ_PHONE_STATE"> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...