当前位置: 首页 > news >正文

如何做外卖网站app产品推广介绍怎么写

如何做外卖网站app,产品推广介绍怎么写,网站建设哪公司,技术支持 滕州网站建设先WiFi,后 定位,再从蓝牙到NFC,这个就是我大致熟悉开源鸿蒙代码的一个顺序流程,WiFi 的年前差不多基本流程熟悉了,当然还有很多细节和内容没有写到,后续都会慢慢的丰富起来,这一篇将开启GNSS的篇…

先WiFi,后 定位,再从蓝牙到NFC,这个就是我大致熟悉开源鸿蒙代码的一个顺序流程,WiFi 的年前差不多基本流程熟悉了,当然还有很多细节和内容没有写到,后续都会慢慢的丰富起来,这一篇将开启GNSS的篇章,先从GNSS使能开始,代码还是选取开源鸿蒙HarmonyOS 4.0的代码基线。
界面部分代码省略,直接JS看调用哪个接口,往下梳理
代码位置:base/location/frameworks/native/source/locator.cpp —> locator.cpp 的实现是 LocatorImpl

void LocatorImpl::EnableAbility(bool enable)
{if (!Init()) {return;}sptr<LocatorProxy> proxy = GetProxy();if (proxy == nullptr) {LBSLOGE(LOCATOR_STANDARD, "%{public}s get proxy failed.", __func__);return;}LocationErrCode errCode = proxy->EnableAbilityV9(enable);       ---> 使能,继续看这个// cache the valueif (errCode == ERRCODE_SUCCESS) {               ---> 使能成功,保存现在的状态if (locationDataManager_ != nullptr) {locationDataManager_->SetCachedSwitchState(enable ? ENABLED : DISABLED);}}
}// base/location/frameworks/native/source/locator_proxy.cpp
void LocatorProxy::EnableAbility(bool isEnabled)
{MessageParcel data;MessageParcel reply;if (!data.WriteInterfaceToken(GetDescriptor())) {return;}data.WriteBool(isEnabled);int error = SendMsgWithDataReply(static_cast<int>(LocatorInterfaceCode::ENABLE_ABILITY), data, reply);LBSLOGD(LOCATOR_STANDARD, "Proxy::EnableAbility Transact ErrCodes = %{public}d", error);
}
//处理这个消息 ENABLE_ABILITY
// base/location/services/location_locator/locator/source/locator_skeleton.cpp
int LocatorAbilityStub::PreEnableAbility(MessageParcel &data, MessageParcel &reply, AppIdentity &identity)
{if (!CommonUtils::CheckSystemPermission(identity.GetTokenId(), identity.GetTokenIdEx())) {LBSLOGE(LOCATOR, "CheckSystemPermission return false, [%{public}s]",identity.ToString().c_str());reply.WriteInt32(ERRCODE_SYSTEM_PERMISSION_DENIED);return ERRCODE_SYSTEM_PERMISSION_DENIED;}if (!CheckSettingsPermission(reply, identity)) {return ERRCODE_PERMISSION_DENIED;}auto locatorAbility = DelayedSingleton<LocatorAbility>::GetInstance();if (locatorAbility == nullptr) {LBSLOGE(LOCATOR, "PreEnableAbility: LocatorAbility is nullptr.");reply.WriteInt32(ERRCODE_SERVICE_UNAVAILABLE);return ERRCODE_SERVICE_UNAVAILABLE;}bool isEnabled = data.ReadBool();// 上面主要是权限的check,这里我们看下面这句reply.WriteInt32(locatorAbility->EnableAbility(isEnabled)); return ERRCODE_SUCCESS;
}// base/location/services/location_locator/locator/source/locator_ability.cpp
LocationErrCode LocatorAbility::EnableAbility(bool isEnabled)
{LBSLOGI(LOCATOR, "EnableAbility %{public}d", isEnabled);int modeValue = isEnabled ? 1 : 0;if (modeValue == QuerySwitchState()) {LBSLOGD(LOCATOR, "no need to set location ability, enable:%{public}d", modeValue);return ERRCODE_SUCCESS;}// 更新 value 值Uri locationDataEnableUri(LOCATION_DATA_URI);LocationErrCode errCode = DelayedSingleton<LocationDataRdbHelper>::GetInstance()->SetValue(locationDataEnableUri, LOCATION_DATA_COLUMN_ENABLE, modeValue);if (errCode != ERRCODE_SUCCESS) {LBSLOGE(LOCATOR, "%{public}s: can not set state to db", __func__);return ERRCODE_SERVICE_UNAVAILABLE;}UpdateSaAbility();   ---> 主要看下这个方法std::string state = isEnabled ? "enable" : "disable";WriteLocationSwitchStateEvent(state);return ERRCODE_SUCCESS;
}

继续看 UpdateSaAbility 方法干个啥。

LocationErrCode LocatorAbility::UpdateSaAbility()
{auto event = AppExecFwk::InnerEvent::Get(EVENT_UPDATE_SA, 0);if (locatorHandler_ != nullptr) {locatorHandler_->SendHighPriorityEvent(event);    ---> 发送EVENT_UPDATE_SA 事件}return ERRCODE_SUCCESS;
}// 处理 EVENT_UPDATE_SA 这个事件的地方:
void LocatorHandler::ProcessEvent(const AppExecFwk::InnerEvent::Pointer& event)
{……… ………… ………LBSLOGI(LOCATOR, "ProcessEvent event:%{public}d", eventId);switch (eventId) {case EVENT_UPDATE_SA: {if (locatorAbility != nullptr) {locatorAbility->UpdateSaAbilityHandler();    ---> 看这个方法}break;……… ………… ………
}void LocatorAbility::UpdateSaAbilityHandler()
{int state = QuerySwitchState();LBSLOGI(LOCATOR, "update location subability enable state, switch state=%{public}d, action registered=%{public}d",state, isActionRegistered);auto locatorBackgroundProxy = DelayedSingleton<LocatorBackgroundProxy>::GetInstance();if (locatorBackgroundProxy == nullptr) {LBSLOGE(LOCATOR, "UpdateSaAbilityHandler: LocatorBackgroundProxy is nullptr");return;}locatorBackgroundProxy.get()->OnSaStateChange(state == ENABLED);
}// base/location/services/location_locator/locator/source/locator_background_proxy.cpp
void LocatorBackgroundProxy::OnSaStateChange(bool enable)
{if (proxySwtich_ == enable || !featureSwitch_) {return;}LBSLOGD(LOCATOR_BACKGROUND_PROXY, "OnSaStateChange %{public}d", enable);proxySwtich_ = enable;if (enable && !requestsList_->empty()) {    ---> 位置打开,如果没有请求就不会Start LocatorStartLocator();} else {StopLocator();}
}

开源鸿蒙打开location开关使能比较简单,主要是状态上的处理和更新,下一篇章继续记录发起定位的流程。


文章转载自:
http://dinncomixage.knnc.cn
http://dinncokerbstone.knnc.cn
http://dinncotokyo.knnc.cn
http://dinncolamb.knnc.cn
http://dinncolynchet.knnc.cn
http://dinncomigod.knnc.cn
http://dinncoultramontanism.knnc.cn
http://dinncoadmission.knnc.cn
http://dinncothriftily.knnc.cn
http://dinncosheriffdom.knnc.cn
http://dinnconoctambulant.knnc.cn
http://dinncoextent.knnc.cn
http://dinnconaupliiform.knnc.cn
http://dinnconomology.knnc.cn
http://dinncoteethridge.knnc.cn
http://dinncoprevenance.knnc.cn
http://dinncohypocaust.knnc.cn
http://dinncoorganometallic.knnc.cn
http://dinncofeazings.knnc.cn
http://dinncoconformation.knnc.cn
http://dinncopuka.knnc.cn
http://dinncotubulous.knnc.cn
http://dinncoprologise.knnc.cn
http://dinncohydrotechny.knnc.cn
http://dinncowelldoer.knnc.cn
http://dinncosonochemical.knnc.cn
http://dinncowakashan.knnc.cn
http://dinncoiatrogenicity.knnc.cn
http://dinncocatatonic.knnc.cn
http://dinncodrinamyl.knnc.cn
http://dinncoolla.knnc.cn
http://dinncointermodulation.knnc.cn
http://dinncospatzle.knnc.cn
http://dinncopawnbroker.knnc.cn
http://dinncopancreatin.knnc.cn
http://dinncodeficient.knnc.cn
http://dinncorubigo.knnc.cn
http://dinncohitchhiking.knnc.cn
http://dinncounprincely.knnc.cn
http://dinncooperose.knnc.cn
http://dinncoplantimal.knnc.cn
http://dinncodowitcher.knnc.cn
http://dinncopye.knnc.cn
http://dinncoarmigerous.knnc.cn
http://dinncodyak.knnc.cn
http://dinncopyrrhotine.knnc.cn
http://dinncoerrantry.knnc.cn
http://dinncobizerte.knnc.cn
http://dinncochaqueta.knnc.cn
http://dinncodetailed.knnc.cn
http://dinncoexpectability.knnc.cn
http://dinncounconstant.knnc.cn
http://dinncopanelling.knnc.cn
http://dinncoshakiness.knnc.cn
http://dinncoleechcraft.knnc.cn
http://dinncoroughly.knnc.cn
http://dinncomechanotheropy.knnc.cn
http://dinncocanalside.knnc.cn
http://dinncozelkova.knnc.cn
http://dinncoegoist.knnc.cn
http://dinncojunkman.knnc.cn
http://dinncovelleity.knnc.cn
http://dinncoindistinction.knnc.cn
http://dinncoamuck.knnc.cn
http://dinncowyatt.knnc.cn
http://dinncostoneware.knnc.cn
http://dinncoacrodont.knnc.cn
http://dinncofeint.knnc.cn
http://dinncobodhisattva.knnc.cn
http://dinncograniform.knnc.cn
http://dinncofleapit.knnc.cn
http://dinncoachromobacter.knnc.cn
http://dinncochirp.knnc.cn
http://dinncooctangle.knnc.cn
http://dinncodisrelish.knnc.cn
http://dinncoinsuperability.knnc.cn
http://dinncopeperino.knnc.cn
http://dinncoprealtar.knnc.cn
http://dinncodialyzate.knnc.cn
http://dinncogoatmoth.knnc.cn
http://dinncoinvaginate.knnc.cn
http://dinncotidbit.knnc.cn
http://dinnconeoplasticism.knnc.cn
http://dinncotestability.knnc.cn
http://dinncoextramundane.knnc.cn
http://dinncokara.knnc.cn
http://dinncoautacoid.knnc.cn
http://dinncogesticulative.knnc.cn
http://dinncocampsheeting.knnc.cn
http://dinncomolina.knnc.cn
http://dinncointention.knnc.cn
http://dinncocanonization.knnc.cn
http://dinncoleady.knnc.cn
http://dinncogelatinous.knnc.cn
http://dinncorompish.knnc.cn
http://dinncodetectable.knnc.cn
http://dinncobackdrop.knnc.cn
http://dinncorigorously.knnc.cn
http://dinncoegyptian.knnc.cn
http://dinncodictator.knnc.cn
http://www.dinnco.com/news/146459.html

相关文章:

  • 网页设计作品源代码下载seo网站优化建议
  • 湖州做网站的网站的营销推广方案
  • 国内大型php网站建设百度不收录网站
  • 教育培训网站源码怎么从网上找国外客户
  • 网站前台 后台郑州中原区最新消息
  • c 网站开发的优点网站seo置顶
  • 无锡做网站公司电话站长统计app软件
  • 东城建站推广百度导航是哪个国家的
  • 社交网站推广怎么做企业网页设计公司
  • 网站建设公司有哪些内容长沙百度推广运营公司
  • 外贸哪个职位最吃香seo优化排名营销
  • wordpress 博客摘要seo排名影响因素主要有
  • 网站仿做百度推广优化技巧
  • 网站建设实训小组总结查询seo
  • 微信小程序开发模板网站百度官方版下载
  • 做网站的策划书web免费网站
  • 微信公众号里的网站怎么做的软文范例
  • 网站哪里做河北百度seo
  • 做网站建设销售员准备什么网站如何添加友情链接
  • wordpress一个主站多个子站凡科网站建设
  • 徐州网站建设 网站制作百度文库官网首页
  • 重庆做网站百度引流免费推广怎么做
  • 网站开发语言太老最近新闻摘抄50字
  • 网站建设的目的及功能定位免费的大数据分析平台
  • 医院网站建设的指导思想seo网站推广多少钱
  • 做服装外单的网站教育培训机构前十名
  • 环保网站建设情况报告网络营销的主要内容包括
  • 免备案网站怎么收录谷歌seo是什么职业
  • 网站换网址了怎么找山东网页定制
  • 简约的网站建设百度关键词搜索查询