【问题标题】:how do i get canonical names of packages of deafult apps in Android如何获取 Android 中默认应用程序包的规范名称
【发布时间】:2012-10-21 17:44:15
【问题描述】:

我需要知道一些默认 Android 应用程序的规范名称,例如电子邮件、联系人等。我希望能够使用它们的规范名称来启动它们。

喜欢

Intent i = new Intent("com.pacakge.canonicalname");

那么有什么想法可以让我获得默认 Android 应用程序的规范包名称列表吗?

谢谢

【问题讨论】:

    标签: android packages canonical-name


    【解决方案1】:

    PackageManager 类中有一个名为 currentToCanonicalPackageNames(String[] names) 的方法,我怀疑它可用于执行您的要求。所以像:

    String[] names = {"Email","Contacts"};
    try{
      String[] canonicalNames = context.getPackageManager().currentToCanonicalPackageNames(names);
    
      //do whatever you want with canonicalNames, e.g. launch the email app,
      Intent email = context.getPackageManager().getLaunchIntentForPackage(canonicalNames[0]);
      context.startActivity(email);
    
    }catch(NameNotFoundException e){
      Log.d("MY ACTIVITY NAME", "Package name(s) not found.");
    }
    

    我正在考虑自己做这种事情,但没有尝试过这段代码,所以请谨慎使用。

    编辑: 所以今晚尝试了一下,解决方案可能不是你想要的。假设您仅从这些应用程序的显示名称开始(技术上称为应用程序标签),您可能必须实际检查设备上安装的所有应用程序以查找该应用程序标签。我刚刚在我的博客上发布了我的解决方案,所以take a look

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-24
      • 1970-01-01
      • 2012-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-19
      相关资源
      最近更新 更多