前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Android 判断包名判断是否为系统应用的方法

Android 判断包名判断是否为系统应用的方法

原创
作者头像
IT工作者
发布于 2022-05-20 07:33:26
发布于 2022-05-20 07:33:26
1.9K00
代码可运行
举报
文章被收录于专栏:程序技术知识程序技术知识
运行总次数:0
代码可运行

一、在PackageManagerService中对是否是system app的判断,具有ApplicationInfo.FLAG_SYSTEM标记的,

被视为System app。

 二、测试app

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.giada.android_demo;
 
import androidx.appcompat.app.AppCompatActivity;
 
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
 
public class MainActivity extends AppCompatActivity {
    Context context;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        context = getApplicationContext();
 
 
        Log.v("android_demo","is com.giada.android_demo system app? "+
        isSystemApplication(context,"com.giada.android_demo"));
 
        Log.v("android_demo","is com.android.phone system app? "+
        isSystemApplication(context,"com.android.phone"));
    }
 
    public static boolean isSystemApplication(Context context, String packageName){
        PackageManager mPackageManager = context.getPackageManager();
        try {
            final PackageInfo packageInfo = 
            mPackageManager.getPackageInfo(packageName, PackageManager.GET_CONFIGURATIONS);
            if((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM)!=0){
                return true;
            }
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return false;
    }
    
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
android控件大全及用法_学双人舞一步一步教学
GridView 用于显示二维滚动网格的View。同ListView一样,他的数据项也是从ListAdapter中产生。关于他的使用方法可参见官网的示例GridView 。
全栈程序员站长
2022/11/15
3870
【愚公系列】2023年05月 攻防世界-MOBILE(app1)
Objection是一款移动设备运行时漏洞利用工具,该工具由Frida驱动,可以帮助研究人员访问移动端应用程序,并在无需越狱或root操作的情况下对移动端应用程序的安全进行评估检查。
愚公搬代码
2023/05/24
2750
【愚公系列】2023年05月 攻防世界-MOBILE(app1)
Android 对接极光推送
发现现在的Android开发中很少有不用第三方SDK的,为什么呢?就是因为实现一个功能的速度快呀,比如说客服、聊天、直播等一些功能,用第三方SDK可以最快解决问题,我在实际开发中也对接过很多SDK,不过仔细写过这方便到的博客,前段时间我写了一个关于udesk SDK的文章,实现IM的,写的不算太详细,不过你如果看了也够用了,好了,进入正文。
晨曦_LLW
2020/09/25
1.2K0
羊皮书APP(Android版)开发系列(三)APP引导页启动控制类
基本上一个完整的APP都会有一个引导页,在APP首次安装或APP更新后第一次打开时显示,这个逻辑是很通用的,所以写成一个工具类,方便使用。 APP启动页逻辑有三种情况: 当APP被首次安装后打开时显示引导页。 当APP更新版本后,第一次打开时显示引导页。 当APP再次启动时,跳过引导页。 工具类AppIntroUtil.java代码如下: package cn.studyou.parchment.utils; import android.content.Context; import android.t
热心的程序员
2018/08/30
5850
AndroidStudio制作欢迎界面与应用图标
大家好,我是 Vic,今天给大家带来AndroidStudio制作欢迎界面与应用图标的概述,希望你们喜欢
达达前端
2019/07/03
1.5K0
android之获取所有的app(getPackageManager)
Android的应用管理主要是通过PackageManagerService来完成的。
李小白是一只喵
2020/12/14
2.6K0
Android任务管理器的设计实现
项目结构如图,MyToast类是自定义的Toast类,MainActivity是主要Activity类
SmileNicky
2019/01/17
1.7K0
项目实战工具类(一):PhoneUtil(手机信息相关)
可以使用的功能: 1、获取手机系统版本号 2、获取手机型号 3、获取手机宽度 4、获取手机高度 5、获取手机imei串号 ,GSM手机的 IMEI 和 CDMA手机的 MEID. 6、获取手机sim卡号 7、获取手机号 8、判断sd卡是否挂载 9、获取sd卡剩余空间的大小 10、获取sd卡空间的总大小 11、判断是否是平板 12、判断一个apk是否安装 13、拨打电话 14、打开网页 15、获取应用权限 名称列表 16、获取手机内安装的应用 17、获取手机安装非系统应用 18、获取安装应
听着music睡
2018/06/08
7710
【愚公系列】2021年12月 攻防世界-简单题-MOBILE-002(app1)
文章目录 一、app1 二、答题步骤 1.运行app 2.jadx反编译apk文件 总结 ---- 一、app1 题目链接:https://adworld.xctf.org.cn/task/task_
愚公搬代码
2021/12/10
4250
【愚公系列】2021年12月 攻防世界-简单题-MOBILE-002(app1)
【Android 插件化】“ 插桩式 “ 插件化框架 ( 运行应用 | 代码整理 )
【Android 插件化】插件化简介 ( 组件化与插件化 ) 【Android 插件化】插件化原理 ( JVM 内存数据 | 类加载流程 ) 【Android 插件化】插件化原理 ( 类加载器 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 原理与实现思路 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 类加载器创建 | 资源加载 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 注入上下文的使用 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 获取插件入口 Activity 组件 | 加载插件 Resources 资源 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 运行应用 | 代码整理 )
韩曙亮
2023/03/29
5720
【Android 插件化】“ 插桩式 “ 插件化框架 ( 运行应用 | 代码整理 )
Android app小电筒(闪光灯)Torch demo,获取手电筒状态
二、在android 11 和android 8 真机上测试ok,点击按钮开关闪光灯。
IT工作者
2022/05/20
8310
Android 极光推送API
  发现现在的Android开发中很少有不用第三方SDK的,为什么呢?就是因为实现一个功能的速度快呀,比如说客服、聊天、直播等一些功能,用第三方SDK可以最快解决问题,我在实际开发中也对接过很多SDK,不过仔细写过这方便到的博客,前段时间我写了一个关于udesk SDK的文章,实现IM的,写的不算太详细,不过你如果看了也够用了,好了,进入正文。
晨曦_LLW
2022/05/10
1.5K0
Android 极光推送API
安卓应用安全指南 4.1.1 创建/使用活动 示例代码
使用活动的风险和对策取决于活动的使用方式。 在本节中,我们根据活动的使用情况,对 4 种活动进行了分类。 你可以通过下面的图表来找出,你应该创建哪种类型的活动。 由于安全编程最佳实践根据活动的使用方式而有所不同,因此我们也将解释活动的实现。
ApacheCN_飞龙
2022/12/01
1.6K0
【Android 安全】DEX 加密 ( Application 替换 | 兼容 ContentProvider 操作 | 源码资源 )
前两篇分析 ContentProvider 中的 Application 的博客 :
韩曙亮
2023/03/29
5790
【Android 安全】DEX 加密 ( Application 替换 | 兼容 ContentProvider 操作 | 源码资源 )
Android的动态加载插件
我们都知道要获Res下的文件,需要用Resource对象,但是apk是未安装的,宿主并没有对应的resId,因此获取资源需要进行反编译,反编译需要对应的插件的包名,就是反编译R资源。 贴代码,举个例子: 插件管理器类
包子388321
2020/06/16
1.9K0
XYLibrary笔记八:PackageManager基础
将JitPack存储库添加到您的构建文件中 将其添加到存储库末尾的root build.gradle中:
项勇
2023/03/24
3300
XYLibrary笔记八:PackageManager基础
Android常用的工具类系列(应用版本信息)
在项目的开发过程中,我们习惯性的将使用比较频繁的方法定义一个类,这样不仅能方便实用而且提高代码的可阅读性,在这里总结一下个人在项目中会用到的一些工具类,因为工具类比较多,会在后期陆续的更新工具类的集合。
SoullessCoder
2019/12/20
1.5K0
Android常用的工具类系列(应用版本信息)
Android 6.0 运行时权限处理问题
序 自从升级到Android M以来,最大的改变就是增加了运行时权限RuntimePermission,6.0以上的系统如果没有做适配,运行了targetSDK=23的App时就会报权限错误。我们知道6.0以下的系统是按照的时候权限申请的,6.0和之后的版本是我们想要使用某个app的权限,去动态申请的,这也是基于安全上的考虑吧(比如:单机的象棋对战,请求访问通讯录权限等不合理的权限,这肯定是有问题的)。 为了保护用户的隐私,谷歌官方将权限分为了两类,一个是正常权限(Normal Permissions),这
xiangzhihong
2018/02/05
1.1K0
Android 6.0 运行时权限处理问题
相关推荐
android控件大全及用法_学双人舞一步一步教学
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文