Есть ли список всех имен пакетов стандартных приложений для обмена сообщениями для всех конструкторов телефонов Android?
Альтернативно, есть ли простой способ узнать имя пакета системного приложения?
3 ответа
Я только что разрабатывал блокировщик приложений, в котором есть категория для важного приложения, чтобы предложить пользователю заблокировать их. и, очевидно, приложение SMS по умолчанию является важным приложением для блокировки. поэтому я создаю свой собственный список имен пакетов приложений по умолчанию для sms. Я надеюсь, что это будет полезно для вас, и другие помогут мне улучшить этот список:
"com.google.android.apps.messaging"
"com.jb.gosms"
"com.concentriclivers.mms.com.android.mms"
"fr.slvn.mms"
"com.android.mms"
"com.sonyericsson.conversations"
Ты можешь получить
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;
}
Что именно вы пытаетесь сделать? В качестве альтернативы, зачем вам такой список?
В качестве общего совета не следует кодировать что-либо в соответствии со статическим списком, потому что все, что связано с этим списком, вероятно, будет развиваться.