获取手机中安装的所有社交媒体应用程序的列表?

2024-01-02

我正在开发一个应用程序,其中列出了用户移动设备中安装的所有应用程序。我检索了所有应用程序并将其列出在回收视图。现在我想将社交媒体应用程序从该列表中分离出来以用于其他目的。有什么办法可以分离社交媒体应用程序吗? 我使用下面的代码从手机检索所有应用程序包名称。

public List<String> GetAllInstalledApkInfo(){

    List<String> ApkPackageName = new ArrayList<>();

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

    intent.addCategory(Intent.CATEGORY_LAUNCHER);

    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED );

    List<ResolveInfo> resolveInfoList = context1.getPackageManager().queryIntentActivities(intent,0);

    for(ResolveInfo resolveInfo : resolveInfoList){

        ActivityInfo activityInfo = resolveInfo.activityInfo;

        ApkPackageName.add(activityInfo.applicationInfo.packageName);
    }

    return ApkPackageName;

}

如果您获取每个应用程序的包名称,您可以直接询问应用程序属于哪个类别,并使用此库解析 html 响应页面:

org.jsoup.jsoup1.8.3 http://mvnrepository.com/artifact/org.jsoup/jsoup/1.8.3

这是解决您问题的片段:

public class MainActivity extends AppCompatActivity {

public final static String GOOGLE_URL = "https://play.google.com/store/apps/details?id=";
public static final String ERROR = "error";

...


   private class FetchCategoryTask extends AsyncTask<Void, Void, Void> {

       private final String TAG = FetchCategoryTask.class.getSimpleName();
       private PackageManager pm;
       private ActivityUtil mActivityUtil;

       @Override
       protected Void doInBackground(Void... errors) {
          String category;
           pm = getPackageManager();
           List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
           Iterator<ApplicationInfo> iterator = packages.iterator();
           while (iterator.hasNext()) {
               ApplicationInfo packageInfo = iterator.next();
               String query_url = GOOGLE_URL + packageInfo.packageName;
               Log.i(TAG, query_url);
               category = getCategory(query_url);
               // store category or do something else
           }
           return null;
        }


        private String getCategory(String query_url) {
           boolean network = mActivityUtil.isNetworkAvailable();
           if (!network) {
               //manage connectivity lost
               return ERROR;
           } else {
               try {
                   Document doc = Jsoup.connect(query_url).get();
                   Element link = doc.select("span[itemprop=genre]").first();
                   return link.text();
               } catch (Exception e) {
                   return ERROR;
               }
           }
        }
    }  
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取手机中安装的所有社交媒体应用程序的列表? 的相关文章

随机推荐

  • Oracle 星期几问题[重复]

    这个问题在这里已经有答案了 然而 下面的语句返回正确的星期几 当 case 子句中使用表达式时 它不起作用 Select to char SYSDATE Day Dwo case when to char SYSDATE Day Thurs
  • 如何查找包中的活动名称?安卓。亚行外壳

    我可以获得 Android 上安装的所有软件包的列表 但要打开应用程序 我需要活动名称和软件包名称 有没有办法通过 adb shell 列出包中的所有活动 从手机中提取的 Android 清单文件没有帮助 因为它是文件的二进制版本 因此不包
  • array_push 不会给出数组,而是打印出整数值

    我正在使用 array push 编写一个非常简单的 php 程序 但根据文档它无法正常工作 每次我尝试打印最终数组的值时 它都会给我一个整数 有人可以帮我解决这个问题吗 这是我的代码 这是它的输出 9 先谢谢您的帮助 array push
  • Nginx 不将 Cookie 传递给代理

    我有一个 cookie 设置适用于所有子域 example com 我有 nginx ajax 调用通过 proxy pass 但 cookie 不会保留 我的配置如下 server listen 80 server name www ex
  • 如何在 Emacs/elisp 风格的正则表达式中用“\(”替换“(”?

    问题如标题 更具体地说 我厌倦了打字 等等 每次我想在 Emacs 的 交互式 正则表达式函数中使用括号 更不用说 在代码中 所以我写了类似的东西 defadvice query replace regexp before my query
  • MvvmCross Xamarin.Forms 模态对话框

    我只是想用 MvvmCross 制作我的第一个应用程序 但我的应用程序已经遇到了问题 并且在网络上找不到任何相关内容 我想在支持的设备 例如 iPad 上打开特定页面作为模式对话框 对于我的非 MvvmCross 应用程序 我使用 Rg P
  • 如何使用 Bootstrap 3 模态来实现 JavaScriptalert()?

    如果我的 HTML 标头中的 JavaScript 代码中有警报 例如 有没有办法可以使用 Bootstrap 中的模式窗口而不是浏览器的本机警报窗口 如果是这样 有人可以向我展示上面一行代码的简单示例吗 模式应该只有一个 确定 按钮 没什
  • p5.j​​s 中的上下移动(并使用 WASD)

    在p5中如何使用键盘让角色移动 我的意思是 不仅仅是向左和向右 我还想使用 WASD 键 我用过这个 形状作为占位符 https editor p5js org TheDiamondfinderYT present 8ZqV2LsVB ht
  • 如何用Pickle存储自我价值?

    class Player def init self self money 0 self level 0 self xp 0 self xp until level 20 self taxi car Cabbie self busines
  • 在 Jenkins 中配置 GitLab 存储库

    我正在尝试配置 Jenkins 在 Windows Server 2008 上运行 以连接到 GitLab 6 0 存储库 在 Linux 机器上 从我的本地 Windows 盒子中 我可以使用 SSH URL 来克隆我的 GitLab 服
  • 将参数传递给另一个可变参数函数

    有没有什么方法可以让这段代码按预期编译和工作 而无需求助于va list stuff include
  • Android LVL(许可服务)非常慢! ——解决方案?异步?

    我在网上查了一下 看到其他一些帖子抱怨 Android 许可 LVL 库如何缓慢 但没有解决方案 在 HTC Thunderbolt 全新手机 上 它会使测试应用程序的启动时间延迟 3 5 秒以上 有人对异步调用这个库有任何经验或想法吗 其
  • 如何让 Eclipse 自动生成新 Java 类的 main 方法?

    有谁知道我的 Eclipse 不预加载的原因 public static void main String args 当我创建一个新课程时 我该怎么做才能让它自动出现 Type main and press ctrl space The e
  • 提取 Windows 中任何文件的缩略图

    从任何文件 而不仅仅是不同大小的图像 中提取缩略图的最有效方法是什么 我已经查看了所有内容 其中最有希望的是 Windows API ShellFile 但它似乎没有正确安装 我使用的是Windows 7 不久前 我编写了一个 Thumbn
  • 这些 Linux 内核 Oops 字段的含义是什么?

    我在开发人员的生活中已经遇到过一些 Oops 虽然我熟悉可以从这些 Oops 中检索到的一些信息 但仍然有一些信息我无法理解 因此无法用来解决问题 下面您将找到一个 Oops 示例 我将描述我可以从中推断出什么 然后 我会问剩下的信息可以告
  • Django在syncdb时以自定义方式初始化数据库

    我在开发过程中使用 Django 令人烦恼的是 每次我对模型进行一点更改时 我都需要删除数据库并运行syncdb 为了测试的目的 我想每次运行syncdb时自动将一些初始数据添加到数据库中 我尝试将这些代码放入一个应用程序中 init py
  • bash:如何在没有 date -d 选项的情况下比较 Solaris 上的两个日期

    我试图将日志文件行中输入的日期与昨天的日期进行比较 如果差异超过一天 则它会打印日志文件中的该行 日志档案 more ActiveX2Alarms log 2016 09 30 01 40 14 MET faultManager netwo
  • 为什么我可以在私有类型上使用 auto?

    我对以下代码的编译和运行感到惊讶 vc2012 gcc4 7 2 class Foo struct Bar int i public Bar Baz return Bar int main Foo f Foo Bar b f Baz err
  • 如何将 Excel 配色方案从一个工作簿复制到另一个工作簿

    有时 当我从一个工作簿复制并粘贴到另一个工作簿时 目标配色方案看起来很奇怪 如何将配色方案从一个工作簿复制到另一个工作簿 打开 VBA 并键入以下内容 根据需要更改工作簿的名称 workbooks DestinationWorkbook x
  • 获取手机中安装的所有社交媒体应用程序的列表?

    我正在开发一个应用程序 其中列出了用户移动设备中安装的所有应用程序 我检索了所有应用程序并将其列出在回收视图 现在我想将社交媒体应用程序从该列表中分离出来以用于其他目的 有什么办法可以分离社交媒体应用程序吗 我使用下面的代码从手机检索所有应