Android - 跳转到应用商店进行应用打分功能实现

2.将过滤出的这些应用商店展示给用户,如果没有安装任何相关应用商店则提示用户“暂无安装相关应用商店”。

3.用户点击了某应用商店之后,则跳转到该应用商店的APP详情页。

4.下面列出了比较核心的代码,可进行参考。

/**

  • 过滤出已经安装的包名集合

  • @param context

  • @param pkgs 待过滤包名集合

  • @return 已安装的包名集合

*/

public ArrayList getFilterInstallMarkets(Context context, ArrayList pkgs) {

appInfos.clear();

ArrayList appList = new ArrayList();

if (context == null || pkgs == null || pkgs.size() == 0)

return appList;

PackageManager pm = context.getPackageManager();

List installedPkgs = pm.getInstalledPackages(0);

int li = installedPkgs.size();

int lj = pkgs.size();

for (int j = 0; j < lj; j++) {

for (int i = 0; i < li; i++) {

String installPkg = “”;

String checkPkg = pkgs.get(j);

PackageInfo packageInfo = installedPkgs.get(i);

try {

installPkg = packageInfo.packageName;

} catch (Exception e) {

e.printStackTrace();

}

if (TextUtils.isEmpty(installPkg))

continue;

if (installPkg.equals(checkPkg)) {

// 如果非系统应用,则添加至appList,这个会过滤掉系统的应用商店,如果不需要过滤就不用这个判断

if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {

//将应用相关信息缓存起来,用于自定义弹出应用列表信息相关用

AppInfo appInfo = new AppInfo();

appInfo.setAppName(packageInfo.applicationInfo.loadLabel(getPackageManager()).toString());

appInfo.setAppIcon(packageInfo.applicationInfo.loadIcon(getPackageManager()));

appInfo.setPackageName(packageInfo.packageName);

appInfo.setVersionCode(packageInfo.versionCode);

appInfo.setVersionName(packageInfo.versionName);

appInfos.add(appInfo);

appList.add(installPkg);

}

break;

}

}

}

return appList;

}

//自定义的AppInfo

public class AppInfo {

private String appName;

private Drawable appIcon;

private String packageName;

private int versionCode;

private String versionName;

public String getAppName() {

return appName;

}

public void setAppName(String appName) {

this.appName = appName;

}

public Drawable getAppIcon() {

return appIcon;

}

public void setAppIcon(Drawable appIcon) {

this.appIcon = appIcon;

}

public String getPackageName() {

return packageName;

}

public void setPackageName(String packageName​
) {

this.packageName = packageName;

}

public int getVersionCode() {

return versionCode;

}

public void setVersionCode(int versionCode) {

this.versionCode = versionCode;

}

public String getVersionName() {

return versionName;

}

public void setVersionName(String versionName) {

this.versionName = versionName;

}

}

/**

  • 跳转到应用市场app详情界面

  • @param appPkg App的包名

  • @param marketPkg 应用市场包名

*/

public void launchAppDetail(String appPkg, String marketPkg) {

try {

if (TextUtils.isEmpty(appPkg))

return;

Uri uri = Uri.parse(“market://details?id=” + appPkg);

Intent intent = new Intent(Intent.ACTION_VIEW, uri);

if (!TextUtils.isEmpty(marketPkg))

intent.setPackage(marketPkg);

最后

小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取
自学效果低效漫长且无助**。

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

[外链图片转存中…(img-8hpFnN7x-1719073059420)]一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/32428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不同交换机之间相同VLAN间主机通信

1、搭建网络拓扑 搭建拓扑&#xff0c;分配IP地址&#xff0c;划分vlan&#xff0c;分配端口 2、配置交换机 //进入全局配置模式 Switch>enable Switch#config terminal Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#hostname SW1 …

ubuntu 20.04 访问csdn报错 Secure connection failed

打扰了&#xff0c;csdn服务器的问题&#xff0c;和源没关系&#xff0c;后面又重新测试了一下。刚好那一刻网站连上了。 暂时没有好办法&#xff0c;等待一段时间就连上了&#xff0c;改host似乎也不太行。 问题原因&#xff1a; 我一边更新源 sudo apt update & apt up…

OPENCV中0x00007FFE5F35F39C发生异常

原因&#xff1a;读取图片时已经为灰度图像&#xff0c;又进行了一次灰度处理cvtColor 解决方法&#xff1a;如上图所示&#xff0c;将cv::imread的第二个参数改为cv::IMREAD_COLOR&#xff1b;或者保留cv::IMREAD_GRAYSCALE&#xff0c;删去后面的cv::cvtColor

Sequelize入门及简单的增删改查

前言 学习一下NodeJS怎么使用Sequelize怎么查询数据库数据 一、Sequelize是什么&#xff1f; Sequelize 是一个基于 promise 的 Node.js ORM, 二、搭建项目 1.安装过程 npm i -g sequelize-cli //全局安装sequelize-clinpm i sequelize mysql2 //安装sequelize和mysql2…

System.Runtime, Version=6.0.0.0,生成的dll使用出现错误问题

解决&#xff1a; 1.unity左上角file点击选中build settings 点击player settings &#xff0c;然后在player的window的other settings的configuration更改为 Framerwork 其实这个不换也可以的&#xff0c;我后面调试完&#xff0c;发现这个不是重点&#xff0c;下面第2点才是…

Python15 理解Python迭代器

1.Python中的迭代器 在Python中&#xff0c;迭代器是一种允许程序员遍历一个容器&#xff08;特别是列表、元组、字典等集合类型&#xff09;的对象&#xff0c;而不需要了解容器的内部结构。迭代器提供了一个统一的方法来逐一访问容器中的元素&#xff0c;这种机制称为迭代。…

使用自签名 TLS 将 Dremio 连接到 MinIO

Dremio 是一个开源的分布式分析引擎&#xff0c;为数据探索、转换和协作提供简单的自助服务界面。Dremio 的架构建立在 Apache Arrow&#xff08;一种高性能列式内存格式&#xff09;之上&#xff0c;并利用 Parquet 文件格式实现高效存储。有关 Dremio 的更多信息&#xff0c;…

应用占内存,应用太耗电。不如冻起来!

在安卓系统中&#xff0c;一些不常用的系统组件、进程或顽固应用可能会持续在后台运行&#xff0c;占用宝贵的内存资源&#xff0c;导致手机出现卡顿、续航减少等问题。今天我将向您推荐几款实用的应用冻结工具&#xff0c;它们能够帮助您冻结或隐藏这些不必要的应用&#xff0…

最新PHP仿猪八戒任务威客网整站源码/在线接任务网站源码

资源介绍 老规矩&#xff0c;截图为亲测&#xff0c;前后台显示正常&#xff0c;细节功能未测&#xff0c;有兴趣的自己下载。 PHP仿猪八戒整站源码下载&#xff0c;phpmysql环境。威客开源建站系统&#xff0c;其主要交易对象是以用户为主的技能、经验、时间和智慧型商品。经…

Vue81-独享路由守卫

一、 独享路由守卫的定义 当只有某个特定的路由需要做校验的时候&#xff0c;可以在改路由组件规则的地方单独配置独属于改组件的路由守卫。 二、示例 1、需求 系统只在进入新闻路由页面的时候做校验。 2、代码实现 注意&#xff1a; 独享路由守卫&#xff0c;只有前置路由守…

高通安卓12-OTA 升级

1.OTA介绍 OTA 英文全称是 Over-the-Air Technology&#xff0c;即空间下载技术的意思。 OTA 升级是 Android 系统提供的标准软件升级方式。它功能强大&#xff0c;可以无损失升级系统&#xff0c;主 要通过网络[例如 WIFI、3G]自动下载 OTA 升级包、自动升级&#xff0c;但…

Windows11系统自动获取电脑IPV6地址,并且开机自动发送到指定邮箱

废话&#xff1a;最近放假回家&#xff0c;在家里突然想玩游戏了&#xff0c;Steamdeck性能终归有限。部分游戏始终玩的不爽&#xff0c;想到之前了解到的SunshnieMoonlight串流的方案&#xff0c;远程调用家里的电脑打游戏&#xff0c;简直不要太爽。 一顿折腾之后配置好了所有…

【职场人】“万事皆可”领导的职场囧途

故事单元一&#xff1a;无所不能的承诺 在我的公司里&#xff0c;有一位领导&#xff0c;我们戏称他为“万事皆可”先生。每当有新的任务或挑战出现时&#xff0c;他总是第一个站出来&#xff0c;拍着胸脯说&#xff1a;“没问题&#xff0c;交给我吧&#xff01;”他的这种自…

一种微弱故障特征增强的旋转机械故障诊断方法(MATLAB)

导致轴承失效的根本原因是由异常磨损和局部间的机械冲击所导致的。对轴箱轴承日常运转的下所产生的均匀磨损而言&#xff0c;其振动信号特征与正常轴承振动信号大致一样&#xff0c;随机性较强&#xff0c;其概率密度函数呈现出高斯分布的现象&#xff0c;但由于磨损所导致的不…

37 - 上级经理已离职的公司员工(高频 SQL 50 题基础版)

37 - 上级经理已离职的公司员工 selecte1.employee_id fromEmployees e1 left join Employees e2 on e1.manager_id e2.employee_id wheree2.manager_id is null and e1.manager_id is not null and e1.salary<30000;

《计算机英语》 Unit 5 Networking 网络

Section A Networking 网络 The need to share information and resources among different computers has led to linked computer systems, called networks, in which computers are connected so that data can be transferred from machine to machine. 不同计算机之间共享…

什么是正态分布

最重要的连续分布的通用名是概率密度函数&#xff0c;而标准正态分布&#xff08;Standard Normal Distribution&#xff09; 是最重要的概率密度函数。这个连续分布之所以重要&#xff0c;我认为是因为它非常常见&#xff0c;换句话说&#xff0c;我们会很常用到它。标准正态分…

C++基础编程100题-012 OpenJudge-1.3-10 计算并联电阻的阻值

更多资源请关注纽扣编程微信公众号 http://noi.openjudge.cn/ch0103/09/ 描述 对于阻值为r1和r2的电阻&#xff0c;其并联电阻阻值公式计算如下&#xff1a; R 1/(1/r1 1/r2) 输入 两个电阻阻抗大小&#xff0c;浮点型&#xff0c;以一个空格分开。 输出 并联之后的阻…

【tomcat】tomcat系统架构以及核心启动流程

对于web后端开发工程师来说&#xff0c;tomcat作为一个应用服务器框架本质上就是一个HTTP服务Servlet容器。研究过spring、spring mvc源码的同学应该了解&#xff0c;spring mvc其实就是基于Servlet规范实现的请求的转发路由、转发处理。而Spring和SpringMVC就是通过web.xml文件…

Elasticsearch过滤器(Filter):原理及使用

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…