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

昆明网站建设昆明.net空网站做九九乘法表

昆明网站建设昆明,.net空网站做九九乘法表,网站自适应 如何做,小工厂如何找外贸公司合作摘要:通过广播设置全局参数控制应用是否允许卸载,全局参数在Launcher和PackageInstaller两个模块中使用到。此功能可用于MDM后台控制是否允许设备卸载应用。 1. 静态注册广播 由于系统安装和卸载的功能集中在PackageInstaller模块中,为了更…

摘要:通过广播设置全局参数控制应用是否允许卸载,全局参数在Launcher和PackageInstaller两个模块中使用到。此功能可用于MDM后台控制是否允许设备卸载应用。

1. 静态注册广播

由于系统安装和卸载的功能集中在PackageInstaller模块中,为了更好的调用并适配android标准接口,故将广播注册在PackageInstaller模块,同时添加写全局变量的权限。

Index: frameworks/base/packages/PackageInstaller/AndroidManifest.xml
===================================================================
--- frameworks/base/packages/PackageInstaller/AndroidManifest.xml	(版本 360)
+++ frameworks/base/packages/PackageInstaller/AndroidManifest.xml	(版本 361)
@@ -18,6 +18,7 @@<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" /><uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" /><uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
+    <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <!-- @ + --><uses-permission android:name="com.google.android.permission.INSTALL_WEARABLE_PACKAGES" />@@ -142,6 +143,16 @@android:authorities="com.google.android.packageinstaller.wear.provider"android:grantUriPermissions="true"android:exported="true" />
+
+        <!-- @ + { -->
+        <receiver android:name=".UninstallAppStatusAddReceiver"
+                android:exported="true" >
+            <intent-filter>
+                <action android:name="com.example.launcher.UNINSTALL"/>
+            </intent-filter>
+        </receiver>
+	     <!-- @ + } --></application></manifest>

2. 收到广播后设置全局变量

接收到携带应用包名和卸载与否标志位的参数的广播后,将全局变量对应的包名设置为相对应的标志位。

Index: frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/UninstallAppStatusAddReceiver.java
===================================================================
--- frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/UninstallAppStatusAddReceiver.java	(不存在的)
+++ frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/UninstallAppStatusAddReceiver.java	(版本 361)
@@ -0,0 +1,57 @@
+package com.android.packageinstaller;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Environment;
+import android.provider.Settings;
+import android.text.TextUtils;
+import android.util.Log;
+
+
+public class UninstallAppStatusAddReceiver extends BroadcastReceiver {
+
+    private final static String ACTION_UNINSTALL = "com.example.launcher.UNINSTALL";
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        String action = intent.getAction();
+        Log.d("UninstallAppStatusAddReceiver", "onReceive: " + action);
+        if (ACTION_UNINSTALL.equals(action)) {
+            String pkgName = intent.getStringExtra("packageName");
+            int flag = intent.getIntExtra("flag",0);
+            if (!(TextUtils.isEmpty(pkgName))) {
+                Settings.System.putInt(context.getContentResolver(),pkgName, flag);
+            }
+        }
+    }
+}

3. 卸载时不做处理

在设置-应用中卸载

Index: frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/UninstallerActivity.java
===================================================================
--- frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/UninstallerActivity.java	(版本 360)
+++ frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/UninstallerActivity.java	(版本 361)
@@ -55,6 +55,7 @@import android.os.ServiceManager;import android.os.UserHandle;import android.os.UserManager;
+import android.provider.Settings;import android.util.Log;import com.android.packageinstaller.handheld.ErrorDialogFragment;
@@ -210,7 +211,15 @@}}-        showConfirmationDialog();
+        // @ + {
+        int flag = Settings.System.getInt(getContentResolver(), mPackageName, 0);
+        if (flag == 0) {
+            showConfirmationDialog();
+        }
+        if (flag == 1) {
+            finish();
+        }
+        // @ + }}public DialogInfo getDialogInfo() {

在Launcher拖动不显示卸载

Index: vendor/mediatek/proprietary/packages/apps/Launcher3/src/com/android/launcher3/ButtonDropTarget.java
===================================================================
--- vendor/mediatek/proprietary/packages/apps/Launcher3/src/com/android/launcher3/ButtonDropTarget.java	(版本 360)
+++ vendor/mediatek/proprietary/packages/apps/Launcher3/src/com/android/launcher3/ButtonDropTarget.java	(版本 361)
@@ -185,6 +185,13 @@setupItemInfo(dragObject.dragInfo);mActive = supportsDrop(dragObject.dragInfo);}
+        // @ + {
+        int flag = android.provider.Settings.System.getInt(
+                getContext().getContentResolver(),dragObject.dragInfo.getTargetPackage(), 0);
+        if (flag == 1) {
+            mActive = false;
+        }
+        // @ + }setVisibility(mActive ? View.VISIBLE : View.GONE);mAccessibleDrag = options.isAccessibleDrag;
http://www.yayakq.cn/news/313980/

相关文章:

  • 网站图片展示代码论坛网站制作教程
  • 我的网站百度怎么搜索不到了公司门户网站怎么做
  • 许昌正规网站优化公司小程序制作样式
  • 企业网站推广可以选择哪些方法?下载中国建设银行网站
  • 网站建设廴金手指花总壹陆购物网站开发报告
  • 江苏宜安建设有限公司 网站专科网站建设论文
  • 沧州网站建设费用怎么用wordpress建外贸网站
  • 私人申请建设网站多少钱什么是互联网行业
  • 怎样让网站做301处理seo推广的全称是
  • 中山环保骏域网站建设专家企业网站建设杭州
  • 西部数码网站管理助手v3.1宁皓网 wordpress
  • 做网站现在什么尺寸合适郑州比较好的设计公司
  • 哪个网站可以做笔译兼职建设网站收废品
  • 网站备案通过什么可以备案凉山州城乡规划建设局网站
  • 网站的建设进度表公司网站备案电话
  • 网站建设仟金手指六六14哔哩哔哩网页版下载
  • 提供邵阳网站建设衡水网站建设定制
  • 网站建设需要建站公司沟通哪些ps做的网站首页
  • 高端网站建站logo免费生成器
  • 做网站挣钱吗现在最新的网站搭建工具
  • 会员网站建设企业网站建设是什么实现的物质基础和技术支撑
  • 网站建设开发多少钱个人可以做公益网站吗
  • 代理记账网站模板管理咨询公司注册要求
  • 渐变配色网站学成在线网页制作
  • 做跨境网站如何编辑网站
  • 可以做婚礼视频的网站有哪些公司网站怎么在百度上做推广
  • 学做网站和推广要多久建设网站程序
  • 织梦网做网站步骤免费网站建设入门
  • 怎么做简历的网站wordpress 吃cpu
  • 做网站需要多少网站栏目优化