【问题标题】:Get incoming call number programmatically on android在android上以编程方式获取来电号码
【发布时间】:2019-03-01 06:00:02
【问题描述】:

我正在尝试使用 android studio 上的广播接收器获取来电信息。 以下是我尝试过的方法:

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

我尝试过这个接收者的意图:

方法一:

incnumber=intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);

方法二:

final String state1 = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
        telephony.listen(new PhoneStateListener(){
            @Override
            public void onCallStateChanged(int state, final String incomingNumber) {
                super.onCallStateChanged(state, incomingNumber);
                incnumber=incomingNumber;
            }
        },PhoneStateListener.LISTEN_CALL_STATE);

方法三:

incnumber=intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);

这三个方法都返回空的incnumber。

顺便说一句,我正在android pie上运行这个项目,请帮帮我。

【问题讨论】:

  • 除了 pie 之外的所有其他版本都可以正常工作吗?
  • 我认为不会,我会尽快恢复
  • ok..你添加这个权限了吗
  • 好像只做馅饼,奥利奥可以用
  • 是的,我已经做到了

标签: android broadcastreceiver telephonymanager


【解决方案1】:

试试这个方法... 权限

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

让广播接收器说 ServiceReceiver 在 Manifest 中分配其操作。

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

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 11上的来电中获取号码吗???还是来自通知侦听器???
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-22
  • 1970-01-01
  • 2011-08-22
  • 2012-03-19
  • 2017-12-31
  • 2011-04-21
相关资源
最近更新 更多