1import type Want from '@ohos.application.Want'; 2import ServiceExtension from '@ohos.app.ability.ServiceExtensionAbility'; 3import CallManagerService from './CallManagerService'; 4import rpc from '@ohos.rpc'; 5import LogUtils from '../common/utils/LogUtils'; 6import DefaultCallData from '../common/struct/TypeUtils'; 7import CallManager from '../model/CallManager'; 8 9const TAG = 'ServiceAbility'; 10 11export default class ServiceAbility extends ServiceExtension { 12 callManagerService: CallManagerService; 13 14 onCreate(want): void { 15 LogUtils.i(TAG, 'onCreate callUI service'); 16 this.callManagerService = CallManagerService.getInstance(); 17 this.callManagerService.init(this.context); 18 } 19 20 onConnect(want: Want): Stub { 21 LogUtils.i(TAG, 'onConnect callUI service'); 22 let callData: DefaultCallData = new DefaultCallData(); 23 callData.accountNumber = want.parameters?.accountNumber; 24 callData.videoState = want.parameters?.videoState; 25 callData.callType = want.parameters?.callType; 26 callData.callState = want.parameters?.callState; 27 callData.callId = want.parameters?.callId; 28 callData.startTime = want.parameters?.startTime; 29 callData.accountId = want.parameters?.accountId; 30 callData.isEcc = want.parameters?.isEcc; 31 callData.conferenceState = want.parameters?.conferenceState; 32 this.callManagerService.getCallData(callData); 33 CallManager.getInstance().setServiceConnected(true); 34 return new Stub('ServiceAbility'); 35 } 36 37 onDisconnect(): void { 38 LogUtils.i(TAG, 'onDisconnect callUI service'); 39 CallManager.getInstance().setServiceConnected(false); 40 this.callManagerService.onDisconnected(); 41 } 42 43 onRequest(want: Want, startId: number): void { 44 LogUtils.i(TAG, 'onRequest callUI service'); 45 } 46 47 onDestroy(): void { 48 LogUtils.i(TAG, 'onDestroy callUI service'); 49 this.callManagerService.removeRegisterListener(); 50 } 51} 52 53class Stub extends rpc.RemoteObject { 54 constructor(descriptor) { 55 super(descriptor); 56 } 57 58 onRemoteRequest(code, date, reply, option): boolean { 59 LogUtils.i(TAG, 'Stub onRemoteRequest code:' + code); 60 return true; 61 } 62}