在 android 上以编程方式获取来电号码
Get incoming call number programmatically on android
我正在尝试使用 android 工作室的广播接收器获取来电信息。
以下是我尝试过的方法:
<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);
三种方法全部return空incnumber。
对了,我是运行这个项目在android饼上,请帮帮我。
试试这个...
权限
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
使广播接收器说 ServiceReceiver 在清单中分配其操作。
<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 工作室的广播接收器获取来电信息。 以下是我尝试过的方法:
<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);
三种方法全部return空incnumber。
对了,我是运行这个项目在android饼上,请帮帮我。
试试这个... 权限
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
使广播接收器说 ServiceReceiver 在清单中分配其操作。
<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);
}
}