简单的BroadcastReceiver将无法正常工作

时间:2012-01-19 14:40:16

标签: android broadcastreceiver

我尝试开发一个简单的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>

我想要做的就是'吐司'我正在打电话的号码(或者当我被召唤时)。

这不是那样的吗?它是我目前使用的唯一代码。只有一个Broadcastreceiver在后台运行,并通过电话事件解雇。

谢谢, prexx

1 个答案:

答案 0 :(得分:1)

您需要将此权限添加到清单:

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