之前找过,关于电话的去电接通资料很少,把以前做过的项目中去电接通实现写一下,当时是去电接通后开始做计时处理:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//注册监听
mCM = CallManager.getInstance();
Phone phone = PhoneFactory.getDefaultPhone();
mCM.registerPhone(phone);
mCM.registerForPreciseCallStateChanged(mHandler, PHONE_STATE_CHANGED, null);
Log.e(TAG, "oncreat");
```
```
private CallManager mCM;
private static final int PHONE_STATE_CHANGED = 102;
private Button btton;
private Handler mHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case PHONE_STATE_CHANGED:
updatePhoneSateChange();
break;
}
}
};
```
```
private void updatePhoneSateChange() {
Call fgCall = mCM.getActiveFgCall();
if (mCM.hasActiveRingingCall()) {
fgCall = mCM.getFirstActiveRingingCall();
}
final Call.State state = fgCall.getState();
switch (state) {
case IDLE:
Log.e(TAG, "ISLE");
break;
case ACTIVE:
Log.e(TAG, "ACTIVE");//接通标志
break;
default:
break;
}
}
```
```
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="telephony.internal.android.com.speeddiar"
**android:sharedUserId="android.uid.phone" 或者 android:sharedUserId="android.uid.system"**
>
<!-- android:sharedUserId="android.uid.phone"-->
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<protected-broadcast android:name="android.intent.action.SIM_STATE_CHANGED" />
<protected-broadcast android:name="android.provider.Telephony.SPN_STRINGS_UPDATED" />
<application
**android:process="com.android.phone"**
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>