安卓app是怎么识别另一个app的?
发布网友
发布时间:2022-04-23 01:36
我来回答
共1个回答
热心网友
时间:2022-05-17 19:03
安卓有获取当前已经安装的app能力的。首先需要添加读取应用权限,然后获取到安装包列表,跟记录的包名做对比即可知道哪些应用是否安装。
private void getAppList() {
PackageManager pm = getPackageManager();
// Return a List of all packages that are installed on the device.
List<PackageInfo> packages = pm.getInstalledPackages(0);
for (PackageInfo packageInfo : packages) {
// 判断系统/非系统应用
if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) // 非系统应用
{
System.out.println("MainActivity.getAppList, packageInfo=" + packageInfo.packageName);
} else {
// 系统应用
}
}
}
判断是否运行过方法很多,比如与这些app做一个协议,这些合作厂商app首次运行都会发送一个系统全局广播,当微视接收到这个广播之后就会判断已经运行。
有些合作的比较深入的甚至可以直接做定向的进程间通信来通知。