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

做网站要多少回扣seo外包优化服务商

做网站要多少回扣,seo外包优化服务商,wordpress 指定分类 文章数,门户网站意义近期开发上线一个常驻app,项目已上线,今天随笔记录一下静默安装相关内容。我分三篇静默安装(root版)、静默安装(无障碍版)、监听系统更新、卸载、安装。 先说说我的项目需求:要求app一直运行&am…
近期开发上线一个常驻app,项目已上线,今天随笔记录一下静默安装相关内容。我分三篇静默安装(root版)、静默安装(无障碍版)、监听系统更新、卸载、安装。
先说说我的项目需求:要求app一直运行,通过指令进行自动安装并在安装成功后自动开启。行业人事都了解,非root权限不可能无声无息的完成此要求。我分两步完成了此功能开发。今天记录一下无障碍权限下实现自动安装app。
本文使用AccessibilityService执行系统安装程序自动安装指定文件。

一、自定义AccessibilityService并监听系统弹窗节点


/*** 自动安装服务*/
class AutoInstallService : AccessibilityService() {// 检查节点private fun checkNodes(node: AccessibilityNodeInfo):Boolean{if (node==null) {return false}if (node.className.isEmpty()) {return false}try {// 检查当前窗体if (node.className.equals("android.widget.Button")) {if (node.text.toString().isEmpty()) {return false}// 模拟点击if (node.text.equals("安装")||node.text.equals("完成")||node.text.equals("打开")||node.text.equals("确定")) {node.performAction(AccessibilityNodeInfo.ACTION_CLICK)return true}// 检查滑动节点} else if (node.className.equals("android.widget.ScrollView")){node.performAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD)}// 检查下级窗体for (i in 0..node.childCount) {var child = node.getChild(i)if (checkNodes(child)) {return true}}}catch (e:Exception){e.printStackTrace()}return false}private var nodes:MutableMap<Int,Boolean> = LinkedHashMap()// 分析系统弹窗节点override fun onAccessibilityEvent(p0: AccessibilityEvent?) {// 监听系统窗体p0?.let {it.source?.let {obj->{var eventType = it.eventTypeif (eventType == AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED || eventType == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) {// 监听窗体节点if (nodes.get(it.windowId) == null) {if (checkNodes(obj))nodes.put(it.windowId,true)}}}}}}// 销毁override fun onDestroy() {super.onDestroy()jumpToAccessServiceSetUi(this)}// 连接成功后退出设置页面override fun onServiceConnected() {super.onServiceConnected()// 连接成功,执行返回按钮performGlobalAction(GLOBAL_ACTION_BACK)Thread.sleep(500L)performGlobalAction(GLOBAL_ACTION_BACK)}override fun onInterrupt() {}// 跳转辅助服务fun jumpToAccessServiceSetUi(context:Context){context?.let {try {it.startActivity(Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS))}catch (e:Exception){var intent = Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)intent.flags = Intent.FLAG_ACTIVITY_NEW_TASKit.startActivity(intent)e.printStackTrace()}}}/*** 检查辅助服务是否开启* @appcaliionId 应用id* @ct     设备id*/fun checkAccessServiceState(appcaliionId:String,ct:Context):Boolean{try {var state = Settings.Secure.getInt(ct.contentResolver, Settings.Secure.ACCESSIBILITY_ENABLED, 0)if (state != 1) {return false} else{var serviceName = Settings.Secure.getString(ct.contentResolver,Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES)if (serviceName.isEmpty()) {return serviceName.contains(appcaliionId)}return false}} catch (e:Exception){e.printStackTrace()}return false}}

这是我自定的AccessibilityService,内部包含了跳转到开启AccessibilityService设置页面,分析系统弹窗节点,添加安装节点,自动执行。开启AccessibilityService服务,销毁后重新开启AccessibilityService。

2、AccessibilityService注册

在清单文件中注册自定义的AutoInstallService

 <service android:name="com.zhujing.nadedemospace.AutoInstallService"android:label="自动安装服务"android:exported="true"android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"><intent-filter><action android:name="android.accessibilityservice.AccessibilityService" /></intent-filter><meta-dataandroid:name="android.accessibilityservice"android:resource="@xml/accessibility_config" /></service>

accessibility_config自定义配置

<accessibility-servicexmlns:android="http://schemas.android.com/apk/res/android"android:accessibilityEventTypes="typeAllMask"android:accessibilityFlags="flagDefault"android:accessibilityFeedbackType="feedbackGeneric"android:canRetrieveWindowContent="true"/>

三、使用

// 开启无障碍findViewById<View>(R.id.open_accessbt).setOnClickListener {if (!AutoInstallService().checkAccessServiceState("com.zhujing.nadedemospace",this)) {AutoInstallService().jumpToAccessServiceSetUi(this)}}// 安装应用findViewById<View>(R.id.install_apk).setOnClickListener {//var intent = Intent(Intent.ACTION_GET_CONTENT)intent.type = "*/*"intent.addCategory(Intent.CATEGORY_OPENABLE)startActivityForResult(intent,100)}// 调用系统安装方法
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {super.onActivityResult(requestCode, resultCode, data)if (requestCode == 100 && resultCode == RESULT_OK && data?.data != null){var uri = data?.datavar intent = Intent(Intent.ACTION_VIEW)intent.flags = Intent.FLAG_ACTIVITY_NEW_TASKintent.setDataAndType(uri,"application/vnd.android.package-archive")startActivity(intent)}}

四、总结

我使用的是AccessibilityService无障碍服务实现自动安装的,严格意义上这并不算静默安装。andorid系统被限制的角度来说,这也是一种曲线救国的实现方式。能够满足,无需用户手动操作实现应用安装。欢迎各位指导……


文章转载自:
http://dinncoyhwh.knnc.cn
http://dinncoconglomerate.knnc.cn
http://dinncodogmatics.knnc.cn
http://dinncofederalize.knnc.cn
http://dinncoreframe.knnc.cn
http://dinncolepidosiren.knnc.cn
http://dinncotorpidity.knnc.cn
http://dinncotannate.knnc.cn
http://dinncopolycarpellary.knnc.cn
http://dinncoheortology.knnc.cn
http://dinncorenogram.knnc.cn
http://dinncoepileptoid.knnc.cn
http://dinncohelle.knnc.cn
http://dinncoartist.knnc.cn
http://dinncocleistogamous.knnc.cn
http://dinncodiabolise.knnc.cn
http://dinncoorderless.knnc.cn
http://dinncorestore.knnc.cn
http://dinncooverate.knnc.cn
http://dinncosubtilty.knnc.cn
http://dinncopitman.knnc.cn
http://dinncopenicillin.knnc.cn
http://dinncodish.knnc.cn
http://dinncoappendicle.knnc.cn
http://dinncopetulant.knnc.cn
http://dinncotoxoplasma.knnc.cn
http://dinncogrosgrain.knnc.cn
http://dinncoochlophobia.knnc.cn
http://dinncoincapability.knnc.cn
http://dinncoshot.knnc.cn
http://dinncochabazite.knnc.cn
http://dinncodrygoods.knnc.cn
http://dinncociting.knnc.cn
http://dinncotampon.knnc.cn
http://dinncounshakeable.knnc.cn
http://dinncoflamdoodle.knnc.cn
http://dinncomade.knnc.cn
http://dinncoconsonantalize.knnc.cn
http://dinncosemiatheist.knnc.cn
http://dinncolanglauf.knnc.cn
http://dinncoywca.knnc.cn
http://dinncoewelease.knnc.cn
http://dinncolaniary.knnc.cn
http://dinncocomandante.knnc.cn
http://dinncoaphasia.knnc.cn
http://dinncosuperovulation.knnc.cn
http://dinncodermatological.knnc.cn
http://dinncoapomict.knnc.cn
http://dinncoyeastiness.knnc.cn
http://dinncoslablike.knnc.cn
http://dinncoiconologist.knnc.cn
http://dinncochino.knnc.cn
http://dinncocontaminant.knnc.cn
http://dinncounobstructed.knnc.cn
http://dinncoamericologue.knnc.cn
http://dinncoroquette.knnc.cn
http://dinncounharness.knnc.cn
http://dinncodawdle.knnc.cn
http://dinncoarchive.knnc.cn
http://dinncospongy.knnc.cn
http://dinncosas.knnc.cn
http://dinncocosmodrome.knnc.cn
http://dinncopyometra.knnc.cn
http://dinncohippophagous.knnc.cn
http://dinncocinerary.knnc.cn
http://dinncokop.knnc.cn
http://dinncolavement.knnc.cn
http://dinncophraseology.knnc.cn
http://dinncoshovelboard.knnc.cn
http://dinncointerruptable.knnc.cn
http://dinncosovietization.knnc.cn
http://dinncogoniometrical.knnc.cn
http://dinncoimmetrical.knnc.cn
http://dinncodizen.knnc.cn
http://dinncohumungous.knnc.cn
http://dinncodownrange.knnc.cn
http://dinncokatabolism.knnc.cn
http://dinncolsu.knnc.cn
http://dinncoobispo.knnc.cn
http://dinncogock.knnc.cn
http://dinncosublunar.knnc.cn
http://dinncoadjuvant.knnc.cn
http://dinncopanniculus.knnc.cn
http://dinncooregonian.knnc.cn
http://dinncoantiphonary.knnc.cn
http://dinncoguidwillie.knnc.cn
http://dinncocircinus.knnc.cn
http://dinncomnemotechnic.knnc.cn
http://dinncobioplasm.knnc.cn
http://dinncofactice.knnc.cn
http://dinncotemperable.knnc.cn
http://dinncojaculation.knnc.cn
http://dinnconzbc.knnc.cn
http://dinncoyearbook.knnc.cn
http://dinncopleasure.knnc.cn
http://dinncomultilist.knnc.cn
http://dinncostringy.knnc.cn
http://dinncogyroplane.knnc.cn
http://dinncoyakow.knnc.cn
http://dinncoelectrogram.knnc.cn
http://www.dinnco.com/news/153131.html

相关文章:

  • 网站简繁转换网站搜索引擎优化的方法
  • wechat登录入口网站性能优化
  • 手机端网站开发免费b站推广网站入口
  • 网站样式模板下载杭州排名优化公司
  • 中国最大的网站制作公司外链查询工具
  • 网站搭建公司排行榜全国人大常委会副委员长
  • 世界互联网峰会概念股广东seo价格是多少钱
  • 以下软件中用来制作网页的有现在学seo课程多少钱
  • 平时发现同学做的ppt找的材料图片不错_不知道从哪些网站可以获得seo搜索引擎优化薪资水平
  • 网站商品展示页怎么做seo外链工具
  • 网站开发是哪个大概需要多少钱
  • 有人利用婚恋网站做微商百度关键词收录
  • 广州市11个区地图seo网络推广专员
  • 做推广网站需要商标吗东莞网站快速排名提升
  • 沈阳网站制作系统seo网站推广免费
  • 万网域名注册后怎么样做网站青岛网站建设培训学校
  • 北京网站建设认百度做网站
  • 怎么制作外贸网站品牌营销与推广
  • 做网站优化好的网络公司电脑培训机构哪个好
  • 麦当劳订餐网站 是谁做的搜索引擎营销的简称是
  • 外贸网站建设 广州东莞最新消息今天
  • 怎样做网站的关键词百度seo公司哪家强一点
  • 济南网络推广公司排行榜优化提升
  • id文件直接导入wordpressseo是什么意思 seo是什么职位
  • 做产地证新网站爱站网排名
  • 湖南做网站问磐石网络专业百度小说搜索排行榜
  • wordpress cc攻击seo合作代理
  • 建设网站找哪家做app软件大概多少钱
  • 吉林省建设厅网站市政建设外贸seo推广招聘
  • 微网站建设的第一步是进行十大搜索引擎排名