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

和硕网站建设p2p网站开发公司

和硕网站建设,p2p网站开发公司,seo是做网站,wordpress电脑版摘要#xff1a;Android 10#xff08;API 级别 29#xff09;及更高版本会限制应用何时可以启动 activity 背景。这些限制有助于最大限度地减少对用户的干扰#xff0c; 让用户能够更好地控制其屏幕上显示的内容。本文以此为出发点#xff0c;基于展锐平台对系统代码进行…摘要Android 10API 级别 29及更高版本会限制应用何时可以启动 activity 背景。这些限制有助于最大限度地减少对用户的干扰 让用户能够更好地控制其屏幕上显示的内容。本文以此为出发点基于展锐平台对系统代码进行改造通过白名单的方式允许部分应用可以从后台启动activity。 Google官方 针对从后台启动 activity 的限制 1.添加白名单 Index: build/make/target/product/base_system.mk--- build/make/target/product/base_system.mk (版本 1957)build/make/target/product/base_system.mk (版本 1959)-269,6 269,9 wifi-service \wm \PRODUCT_PACKAGES background-startactivity-package-whitelist.txt # VINTF data for system imagePRODUCT_PACKAGES \system_manifest.xml \ Index: frameworks/base/data/etc/background-startactivity-package-whitelist.txt--- frameworks/base/data/etc/background-startactivity-package-whitelist.txt (不存在的)frameworks/base/data/etc/background-startactivity-package-whitelist.txt (版本 1959)-0,0 1 com.android.permissioncontrollerIndex: frameworks/base/data/etc/Android.bp--- frameworks/base/data/etc/Android.bp (版本 1957)frameworks/base/data/etc/Android.bp (版本 1959)-133,3 133,9 sub_dir: permissions,src: com.android.timezone.updater.xml,}prebuilt_etc {name: background-startactivity-package-whitelist.txt,sub_dir: permissions,src: background-startactivity-package-whitelist.txt, } 2. 实现方案 Index: frameworks/base/services/core/java/com/android/server/wm/ActivityStarter.java--- frameworks/base/services/core/java/com/android/server/wm/ActivityStarter.java (版本 1957)frameworks/base/services/core/java/com/android/server/wm/ActivityStarter.java (版本 1959)-1064,6 1064,14 allowed because SYSTEM_ALERT_WINDOW permission is granted.);return false;}// dont abort if the callingPackage on the whitelistif (ActivityBackgroundStartCheckUtil.isWhitelistApp(callingPackage, intent)) {Slog.w(TAG, Background activity start for callingPackageallowed because it is on the whitelist.);return false;} // anything that has fallen through would currently be abortedSlog.w(TAG, Background activity start [callingPackage: callingPackage ; callingUid: callingUid Index: frameworks/base/services/core/java/com/android/server/wm/ActivityBackgroundStartCheckUtil.java--- frameworks/base/services/core/java/com/android/server/wm/ActivityBackgroundStartCheckUtil.java (不存在的)frameworks/base/services/core/java/com/android/server/wm/ActivityBackgroundStartCheckUtil.java (版本 1959)-0,0 1,100 package com.android.server.wm;import android.content.Context; import android.content.Intent; import android.os.Environment; import android.os.Process; import android.text.TextUtils; import android.util.Log;import com.android.internal.util.ArrayUtils;import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.HashSet;public class ActivityBackgroundStartCheckUtil{private static String TAG ActivityBackgroundStartCheckUtil;private static final File GRANT_SYS_APP_LIST_SYSTEM Environment.buildPath(Environment.getRootDirectory(), etc, permissions,background-startactivity-package-whitelist.txt);private static HashSetString mWhitelistAppSet new HashSetString();private static String Key[] {android, call};public static boolean isWhitelistApp(String callingPackage, Intent intent){sGetGrantSystemAppFromFile(mWhitelistAppSet, GRANT_SYS_APP_LIST_SYSTEM);Log.d(TAG, isWhitelistApp callingPackagecallingPackage);try {String packageName intent.getComponent().getPackageName();String className intent.getComponent().getClassName();if (mWhitelistAppSet.contains(callingPackage) ||mWhitelistAppSet.contains(packageName)) {return true; }for (String key : Key) {if (className.contains(key)) {return true; }}} catch (Exception e) {//e.printStackTrace();Log.d(TAG, e.getMessage());}return false;}/*** Get removable system app list from config file** param resultSet* Returned result list* param file* The config file*/private static void sGetGrantSystemAppFromFile(HashSetString resultSet, File file) {resultSet.clear();FileReader fr null;BufferedReader br null;try {if (file.exists()) {fr new FileReader(file);} else {Log.d(TAG, file in file does not exist!);return;}br new BufferedReader(fr);String line;while ((line br.readLine()) ! null) {line line.trim();if (!TextUtils.isEmpty(line)) {Log.d(TAG, read line line);resultSet.add(line);}}Log.e(TAG,GRANT_SYS_APP_LIST_SYSTEM sizeresultSet.size());} catch (Exception io) {Log.d(TAG, io.getMessage());} finally {try {if (br ! null) {br.close();}if (fr ! null) {fr.close();}} catch (IOException io) {Log.d(TAG, io.getMessage());}}} }
http://www.w-s-a.com/news/779209/

相关文章:

  • 网站seo优缺点网站建设公司咨
  • 网站设计需要会什么建设网站的目的以及意义
  • 怎么样推广自己的网站wordpress register_form
  • 网站公司建站凤翔网站建设
  • 网站建设协低价格的网站建设公司
  • 研发网站建设报价深圳网站建设前十名
  • 宠物发布网站模板wordpress中文免费电商模板
  • 济南做网站创意服装品牌策划公司
  • 本地电脑做视频网站 外网连接不上软件商城源码
  • 足球直播网站怎么做crm系统介绍
  • 株洲网站建设联系方式东莞凤岗网站制作
  • 小纯洁网站开发如何注册域名
  • 网上做试卷的网站如何把刚做的网站被百度抓取到
  • 滕州网站建wordpress用户中心按钮不弹出
  • 清远新闻最新消息福建seo搜索引擎优化
  • 凡客建站网微信网站怎么做的
  • 网站建设费怎么写会计科目行业网站建设公司
  • 网站里的友情链接网站建设个人简历的网页
  • 佛山自助建站软件湖南seo优化推荐
  • 免费微信微网站模板下载不了优化人员配置
  • wordpress 导航网站主题画流程图的网站
  • 皮卡剧网站怎样做排名网
  • 网站开发 兼职哪个网站是做安全教育
  • 商品展示类网站怎么用群晖nas做网站
  • 长腿蜘蛛wordpresssem优化推广
  • 中国铁路建设监理协会官方网站深圳福田区怎么样
  • 互联网网站开发发展wordpress文章自定义栏目
  • 众筹网站平台建设工信部网站备案系统
  • 网站301重定向代码wordpress 加子目录
  • 淄博网站制作优化推广asp做学生信息网站