【问题标题】:Is there a list of all stock messaging apps package names for all Android phone constructors?是否有所有 Android 手机构造函数的所有股票消息应用程序包名称的列表?
【发布时间】:2012-01-13 08:29:11
【问题描述】:

或者,有没有一种简单的方法可以知道系统应用程序的包名?

【问题讨论】:

    标签: android sms messaging


    【解决方案1】:

    我只是在开发一个应用程序储物柜,它有一个重要应用程序的类别,供用户锁定它们。 显然默认的短信应用程序是要锁定的重要应用程序。 所以我创建了我自己的默认短信应用程序包名称列表。 我希望这对您有所帮助,并且其他人可以帮助我改进此列表:

    "com.google.android.apps.messaging"
    "com.jb.gosms"
    "com.concentriclivers.mms.com.android.mms"
    "fr.slvn.mms"
    "com.android.mms"
    "com.sonyericsson.conversations"
    

    【讨论】:

    • 那太好了。你找到其他消息应用的包名了吗?
    【解决方案2】:

    你可以得到

    public class ListofAppinMyDevice {
        public class PInfo {   
            public String appname = "";   
            public String pname = "";   
            public String versionName = "";   
            public int versionCode = 0;   
        }   
    
        public ArrayList<PInfo> getInstalledApps(boolean getSysPackages) 
        {   
        ArrayList<PInfo> res = new ArrayList<PInfo>();        
    
        List<PackageInfo> packs = AppUtils.mContext.getPackageManager().getInstalledPackages(0);   
        for(int i=0;i<packs.size();i++) {   
            PackageInfo p = packs.get(i);
    
            ApplicationInfo s=p.applicationInfo;
    
            if(((s.flags & ApplicationInfo.FLAG_SYSTEM)!=1))
            {
    
            PInfo newInfo = new PInfo();
    
            newInfo.appname = p.applicationInfo.loadLabel(AppUtils.mContext.getPackageManager()).toString();   
            newInfo.pname = p.packageName;   
            newInfo.versionName = p.versionName;   
            newInfo.versionCode = p.versionCode;   
             System.out.println("3rd party apps-------------------"+p.packageName +"--------"+newInfo.appname);
            res.add(newInfo);  
            }
    
            if ((!getSysPackages) ) {   
                continue ;   
            }   
    
        }   
        return res;    
    }  
    

    }

    //您可以通过以下方法获取系统安装的应用程序

      public static void listPackages() {   
                ListofAppinMyDevice getmyApp=new ListofAppinMyDevice();
    
                apps =getmyApp.getInstalledApps(true); 
    /* false = will get 3rd part package detials 
    true -will get all system packages */  
                System.out.println("Total InstalledApps in your device--=="+apps.size());
                final int max = apps.size();   
                applist=new StringBuilder();
                for (int i=0; i<max; i++) {   
                    String packageName=apps.get(i).pname;
    
    
        }
    

    【讨论】:

    • 我正在寻找一种用户友好的方式来获取应用程序的包名称,如果我无法获取所有库存短信应用程序包的列表,请让我的用户获取它.
    • K 这是获取系统应用程序包名称的替代方法。
    【解决方案3】:

    你到底想做什么? 或者,为什么需要这样的列表?

    作为一般建议,您不应该根据静态列表编写任何代码,因为与此列表相关的任何内容都可能会发生变化。

    【讨论】:

    • 我需要所有消息应用程序的包,以便我可以在状态栏中处理它们的通知,除了将包保存在静态列表中之外,没有其他办法。我在获取通知信息时得到的所有信息都是包裹。
    • 收听短信广播怎么样?
    • app的重点是能够通过读取状态栏通知并以相同方式处理来收听任何应用程序,我不能使用SMS广播,用户必须能够收听GO Sms、Handsent SMS 或两者兼而有之
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 2020-11-07
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    • 2013-12-22
    相关资源
    最近更新 更多