我目前正在开发一个呼叫应用程序,但遇到了有关 InCallService 的问题。我需要将它绑定到我的 CallActivity,以便扬声器、麦克风静音等功能正常工作。问题是,当我绑定它时(按照关于绑定服务的 Google 文档),onCallAdded 永远不会被调用。我应该如何绑定 InCallService?
这是目前的完成方式:
呼叫服务:
package com.;
import android.content.Context;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.telecom.Call;
import android.telecom.InCallService;
import timber.log.Timber;
public class CallService extends InCallService {
private final IBinder binder = new LocalBinder();
public class LocalBinder extends Binder {
CallService getService() {
return CallService.this;
}
}
public void testing() {
Timber.e("IT WORKS");
}
@Override
public void onCallAdded(Call call) {
Timber.e("ADD");
super.onCallAdded(call);
new OngoingCall().setCall(call);
CallActivity.start(this, call);
}
@Override
public void onCallRemoved(Call call) {
Timber.e("REMOVE");
super.onCallRemoved(call);
new OngoingCall().setCall(null);
}
@Override
public IBinder onBind(Intent intent) {
//return super.onBind(intent);
Timber.e("BIND");
return binder;
}
}
呼叫活动服务连接:
private ServiceConnection connection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName className, IBinder service) {
CallService.LocalBinder binder = (CallService.LocalBinder) service;
mService = binder.getService();
mBound = true;
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
mBound = false;
}
};
开始:
Intent intent = new Intent(this, CallService.class);
bindService(intent, connection, Context.BIND_AUTO_CREATE);