android自定义桌面(launcher)

本文介绍了如何在Android中创建自定义桌面(Launcher),通过在Manifest中设置`android.intent.category.HOME`和`android.intent.category.DEFAULT`类别,使得应用能够作为启动器。ActivityManagerService在系统启动时会查找这些类别,并在存在多个时让用户选择。同时,还需要定义XML布局文件来构建桌面的显示结构。
摘要由CSDN通过智能技术生成
    有时候需要开发一个自己的桌面程序,特别是做产品开发的开发人员,android自定义桌面其实就是一个launcher,然后在相应的activity中把系统中的所有APK加载进来,显示相应的icon图标。
开发自定义桌面需要用到以下几个类
1,ComponentName:组件名称,通常用来打开其他应用程序中的Activity或服务。,
2,PackageInfo:包含了一些信息的基类,它的直接子类有:ApplicationInfo、ComponentInfo、InstrumentationInfo、PermissionGroupInfo、PermissionInfo。它的间接子类有:ActivityInfo、ProviderInfo、ServiceInfo。这个类包含的信息对于所有包中项目是平等的。这些Package items是被Package manager所持有的,这个类提供了属性的非常普通的基本设置。通过 PackageInfo 获取具体信息方法:
    包名获取方法:packageInfo.packageName
    icon获取获取方法:packageManager.getApplicationIcon(applicationInfo)
    应用名称获取方法:packageManager.getApplicationLabel(applicationInfo)
    使用权限获取方法:packageManager.getPackageInfo(packageName,PackageManager.GET_PERMISSIONS).requestedPermissions

3,ResolveInfo:这个类是通过解析一个与IntentFilter相对应的intent得到的信息。它部分地对应于从AndroidManifest.xml的<intent>标签收集到的信息。通过 ResolveInfo 获取具体信息方法:
    包名获取方法:resolve.activityInfo.packageName
    icon获取获取方法:resolve.loadIcon(packageManager)
    应用名称获取方法:resolve.loadLabel(packageManager).toString()

4,PackageManger : 获得已安装的应用程序信息,常用方法: 
    public abstract PackageManager getPackageManager()  //功能:获得一个PackageManger对象  
    public abstract Drawable getApplicationIcon(String packageName) //参数: packageName 包名,功能:返回给定包名的图标,否则返回null
    public abstract ApplicationInfo   getApplicationInfo(String packageName, int flags) //参数:packagename 包名 flags 该ApplicationInfo是此flags标记,通常可以直接赋予常数0即可,功能:返回该ApplicationInfo对象
    public abstract List<ApplicationInfo>  getInstalledApplications(int flags) //参数:flag为一般为GET_UNINSTALLED_PACKAGES,那么此时会返回所有ApplicationInfo。我们可以对ApplicationInfo的flags过滤,得到我们需要的。功能:返回给定条件的所有PackageInfo

    public abstract List<PackageInfo>  getInstalledPackages(int flags) //参数如上,功能:返回给定条件的所有PackageInfo

首先,需要在manifest中加入

<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />

系统启动后,ActivityManagerService会寻找系统中的"android.intent.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值