android - 如何从来电中获取电话号码?

标签 android broadcastreceiver telephony

Android有来电时如何获取电话号码?

最佳答案

制作一个广播接收器ServiceReceiver在Manifest中分配它的 Action 。

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

添加一个 PhoneStateListener 到您的 TelephonyManager,PhoneStateListener 使用传入号码参数覆盖 onCallStateChanged()。就是这样。

ServiceReceiver.Java

public class ServiceReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(final Context context, Intent intent) {
        TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
        telephony.listen(new PhoneStateListener(){
            @Override
            public void onCallStateChanged(int state, String incomingNumber) {
                super.onCallStateChanged(state, incomingNumber);
                System.out.println("incomingNumber : "+incomingNumber);
            }
        },PhoneStateListener.LISTEN_CALL_STATE);
    }
}

关于android - 如何从来电中获取电话号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13154445/

相关文章:

java - AlarmManager 似乎不起作用

android - 带有 singleTop 的广播接收器 startActivity

c++ - 实现 ENUM DNS 查找的库?

java - 如何在 Smali 代码的方法中将 boolean 值设置为 false

android - 列出 Android 4+ 中特定日期的事件(ALL_DAY 问题)

Android:在 unregisterReceiver() 上获取 java.lang.IllegalArgumentException

android - TelephoneNumberUtil 类有什么用?

android - 我如何在android中获取Phone实例?

java - Android线程修改EditText

android - Android 构建中的 libnativehelper 缺少变体