【发布时间】:2017-07-04 10:59:43
【问题描述】:
如何区分来电和去电? 对于这两种情况,手机都处于摘机状态,但对于来电,它处于振铃状态,然后转到摘机状态,
我试过这段代码,但它不能有效地工作,因为一个响铃变量总是假的。 还有另一个问题我怎样才能得到拨出电话号码..提前谢谢
public class states extends BroadcastReceiver {
boolean Ringing = false;
public void onReceive(Context context, Intent intent) {
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
if (state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING)) {
Toast.makeText(context, "Ringing", Toast.LENGTH_SHORT).show();
Ringing = true ;
}
else if (state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_OFFHOOK)) {
if (Ringing) {
// do nothing
}else{
// do something
}
else if (state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_IDLE)) {
Ringing = false ;
}
}
}
这是我的权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<receiver android:name=".states">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
【问题讨论】:
-
对于您的问题,如果您提出电话号码,这意味着您愿意获得自己的联系电话。不是吗?
-
不,我是指我要拨打的号码..
-
我刚刚编辑了答案并请检查 TelephonyManager.CALL_STATE_IDLE
-
不幸的是,我仍然遇到同样的问题..你能检查我的权限吗?我在问题中添加了它们,这可能是问题
标签: java android phone-call