Android:无法检测拨出号码

标签 android broadcastreceiver

我无法检测到什么是去电号码,当我尝试从设备拨出电话时,它总是给我空指针异常。我想检测拨出的电话号码。请指教,我尝试搜索解决方案,但无法使其工作。此行出现空指针异常 -> Log.i("OutgoingCallReceiver",phonenumber);

12-07 16:10:50.576: ERROR/AndroidRuntime(3145): Caused by: java.lang.NullPointerException: println needs a message
12-07 16:10:50.576: ERROR/AndroidRuntime(3145):     at android.util.Log.println_native(Native Method)
12-07 16:10:50.576: ERROR/AndroidRuntime(3145):     at android.util.Log.i(Log.java:143)
12-07 16:10:50.576: ERROR/AndroidRuntime(3145):     at com.cwc.OutgoingCallReceiver.onReceive(OutgoingCallReceiver.java:27)
12-07 16:10:50.576: ERROR/AndroidRuntime(3145):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:2810)
12-07 16:10:50.576: ERROR/AndroidRuntime(3145):     ... 10 more

这是我的类文件

public class OutgoingCallReceiver extends BroadcastReceiver {


// private static final String INTENT_PHONE_NUMBER = "android.intent.extra.PHONE_NUMBER";

    @Override
    public void onReceive(Context context, Intent intent) {
            Bundle bundle = intent.getExtras();

            if(null == bundle)
                    return;


            String phonenumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);

            Log.i("OutgoingCallReceiver",phonenumber);
            Log.i("OutgoingCallReceiver",bundle.toString());

            String info = "Detect Calls sample application\nOutgoing number: " + phonenumber;

            Toast.makeText(context, info, Toast.LENGTH_LONG).show();
    }
}

我在 list 文件中有以下条目

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

</application>

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

最佳答案

已解决,我缺少“android.permission.PROCESS_OUTGOING_CALLS”用户权限。 现在可以使用了,这是我更新后的 list 文件。

关于Android:无法检测拨出号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8422927/

相关文章:

Android BroadcastReceiver onReceive() 在 android 4.0 上调用了两次

java - 如何正确调用从广播接收器更改 UI 的方法?

android - 广播接收器中的getIntent undefined android

android - 对 Kitkat 和旧版本使用 SMS BroadcastReceiver

android - 如何使用 DriveApi.MetadataBufferResult?

android - 如何从我的应用程序链接到我在 Google Play 中的应用程序?

java - 无法从 ArrayList 创建 ArrayAdaptor

java - 如果数据更改值,Android 饼图不会刷新饼图

android - 在日期选择器中计算 50 天

java - Android Java - 警报管理器大部分工作完美,但有时会延迟