1、MapClientService启动,创建MnsService
@Override
protected boolean start() {
Log.e(TAG, "start()");
if (mMnsServer == null) {
mMnsServer = MapUtils.newMnsServiceInstance(this);
if (mMnsServer == null) {
// this can't happen
Log.w(TAG, "MnsService is *not* created!");
return false;
}
}
}
2、创建MnsService—MnsService中创建Socket,如果创建失败则sServerSockets为null
然后调用sdpManager的createMapMnsRecord创建MapMnsRecord
MnsService(MapClientService context) {
if (VDBG) {
Log.v(TAG, "MnsService()");
}
sContext = context;
sAcceptThread = new SocketAcceptor();
sServerSockets = ObexServerSockets.create(sAcceptThread);
SdpManager sdpManager = SdpManager.getDefaultManager();
if (sdpManager == null) {
Log.e(TAG, "SdpManager is null");
return;
}
mSdpHandle = sdpManager.createMapMnsRecord("MAP Message Notification Service",
sServerSockets.getRfcommChannel(), -1, MNS_VERSION,
MasClient.MAP_SUPPORTED_FEATURES);
}
3、SdpManager -createMapMnsRecord