android 获取手机的所有程序和widget的包名和启动类名

获取 widget可以 AppWidgetManager 来获取

List<AppWidgetProviderInfo>
widget=AppWidgetManager.getInstance(Context(上下文)).getInstalledProviders();

得到所有AppWidgetProviderInfo

for (int i = 0; i < widget.size(); i++) {
        AppWidgetProviderInfo info=widget.get(i);
        String packname=info.provider.getPackageName();
        String classname=info.provider.getClassName();

Log.e("-------packname", packname);
        Log.e("-------classname", classname);

}

获取手机里的所以程序的包名和启动类名 和widget类似.

应用程序的启动类名,即在AndroidManifest.xml文件中<activity>中加了

<intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

的过滤条件来,指定那个类名是启动的第一个activity类

所以我们去获取应用程序的包名和启动类名:

Intent AppIntent = new Intent(Intent.ACTION_MAIN, null);

AppIntent.addCategory(Intent.CATEGORY_LAUNCHER);

List<ResolveInfo> resolveInfos = Context(上下文)
                    .getPackageManager().queryIntentActivities(AppIntent, 0);

for (int i = 0; i < resolveInfos.size(); i++) {
                ResolveInfo resolveInfo = resolveInfos.get(i);
                String ClassName = resolveInfo.activityInfo.name;
                String packageName = resolveInfo.activityInfo.packageName;

Log.e("-------packname", packageName);
                Log.e("-------classname", ClassName);}

这样就可以了..!

如果还不是很清楚,下面附上deom

网盘 http://pan.baidu.com/s/1sj4S5tV

android 获取手机的所有程序和widget的包名和启动类名,布布扣,bubuko.com

时间: 2024-10-08 09:45:52

android 获取手机的所有程序和widget的包名和启动类名的相关文章

【Android测试】【随笔】获得App的包名和启动Activity

前言 经常看到一些刚刚接触Android测试的小伙伴在论坛或者QQ群里问这样的问题:如何知道一个App的包名呢?它的启动的Activity又是什么呢? 之前博客里也忽略了这一块,这一节我就专门来介绍一下. 包名 包名(Package name)在Android系统中是判断一个App的唯一标识,不同的App可以有同样的名字,但是它的包名不可以相同. 例如我可以自己编译生成一个App也叫“微信”,但是我App的包名不能为com.tencent.mm(微信的包名为这个),如果我指定的包名如果也和微信一

Android获取手机相关信息

首先,一个小例子: package com.brio.testid; import android.app.Activity; import android.bluetooth.BluetoothAdapter; import android.os.Bundle; import android.provider.Settings.Secure; import android.widget.TextView; public class MainActivity extends Activity {

【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)

为了实现一个功能,需要搜集手机信息,自己先在网上找了相关信息进行了汇总,主要是汇集手机的信息,一般想要的信息在手机设置->关于手机->状态消息里面包含了手机的各种信息,下面的代码中也主要显示了那些信息,但是源码的方法我还没有看,先把总结的贴出来.先上图(太多就截取几个).  上代码啦,太多了,就写主要代码了. // 获取Android手机中SD卡存储信息 获取剩余空间 public void getSDCardInfo() { // 在manifest.xml文件中要添加 /* * <u

Android之Build类.(Android获取手机配置信息 )

一.类结构: java.lang.Object    ? android.os.Build 二.类概述:从系统属性中提取设备硬件和版本信息. 三.内部类: 1.Build.VERSION    各种版本字符串 2.Build.VERSION_CODES    目前已知的版本代码的枚举类 四.常量:UNKNOWN   当一个版本属性不知道时所设定的值.其字符串值为 "unknown" . 五.构造方法: Build () 六.静态属性 1.BOARD   主板:The name of t

从”茄子快传”看应用程序如何获取手机已安装程序的apk文件

"茄子快传"是联想开发的一款近距离文件共享软件,它通过wifi-direct(速度飞快,不需要联网)或者普通的网络(速度慢)在不同手机间传递文件.不知为何,它就火了起来,火的也飞快.其中,共享传输已安装程序文件apk这一功能引起了我强烈的兴趣. 我们知道android对每个应用的权限做了很苛刻的控制,每个应用程序有自己的用户id,每个应用程序只能访问自己的数据,比如程序com.android.calculator计算器程序只被允许访问/data/data/com.android.cal

Android获取手机联系人的姓名和电话

Android获取手机联系人的姓名和电话 主要是用到了跳入手机联系人的intent和获取手机联系人信息的内容提供者,直接上代码 注:此贴是借鉴别人的帖子加了一些自己的东西写出的,原帖地址明日附上: / 首先 我们需要跳入手机通讯录 Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); startActivityForResult(intent, 0); // 之后,我们需要重写

android 获取手机型号,本机电话号码,SDK版本以及firmwarw版本号(即系统版本号)

Android开发平台中,可通过TelephonyManager 获取本机号码. 1 TelephonyManager phoneMgr=(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE); 2 txtPhoneNumber.setText(phoneMgr.getLine1Number()); //txtPhoneNumber是一个EditText 用于显示手机号 注: 根据Android的安全机制,在使用Tel

adb获取App的包名和启动页

第一种情况: 查看手机里面已经安装的App: 1. 清除日志: adb logcat -c 2. 启动日志: adb logcat ActivityManager:I *:s 3. 启动手机App: 我启动的是手机淘宝, 找到这一行: com.taobao.taobao/com.taobao.tao.welcome.Welcome 即为包名和启动页, 请注意是启动页, 而不是首页MainActivity! 第二种情况: 查看apk安装包: 1. 切换到C:\Android\sdk\build-t

Android获取正在运行的程序并kill掉它

获取正在运行的程序并把它加入到一个listview的adapter类面,方法如下: // 正在运行的 public List<Programe> getRunningProcess() { pi = new PackagesInfo(this); am = (ActivityManager) getSystemService(ACTIVITY_SERVICE); // 获取正在运行的应用 run = am.getRunningAppProcesses(); // 获取包管理器,在这里主要通过包