Android 如何检测是否有应用程序已从中升级';安装在设备中的基本版本,并检测它是否是家庭启动器应用程序?
我如何检测android中的任何系统应用程序(预装)是从其基本软件包升级的Android 如何检测是否有应用程序已从中升级';安装在设备中的基本版本,并检测它是否是家庭启动器应用程序?,android,android-intent,android-package-managers,Android,Android Intent,Android Package Managers,我如何检测android中的任何系统应用程序(预装)是从其基本软件包升级的 另外,我想知道软件包是否至少包含一个处理home intent筛选器的活动?对于第一个活动,您可以转到“设置”并检查它是否为您提供了卸载或卸载更新的选项(这意味着此apk在系统中) 第二个我会连接设备并检查Logcat 代码: 获取包和它的,在那里你可以访问它的lastUpdateTime和firstInstallTime。关于第二个问题,我不知道,但如果你找到了方法,请与我分享:)我找到了解决方案 检测是否有任何系统应
另外,我想知道软件包是否至少包含一个处理home intent筛选器的活动?对于第一个活动,您可以转到“设置”并检查它是否为您提供了卸载或卸载更新的选项(这意味着此apk在系统中) 第二个我会连接设备并检查Logcat 代码: 获取包和它的,在那里你可以访问它的lastUpdateTime和firstInstallTime。关于第二个问题,我不知道,但如果你找到了方法,请与我分享:)我找到了解决方案 检测是否有任何系统应用程序已从其基本版本升级-
List<PackageInfo> applications = getPackageManager()
.getInstalledPackages(0);
for (PackageInfo info : applications) {
long firstInstalled = info.firstInstallTime;
long lastUpdate = info.lastUpdateTime;
try {
ApplicationInfo ai = getPackageManager().getApplicationInfo(
info.applicationInfo.packageName, 0);
if ((ai.flags & ApplicationInfo.FLAG_SYSTEM) != 0 /*Check system app*/
&& firstInstalled != lastUpdate /*check for updated */) {
Log.i(TAG,
"Upgraded pre installed app is "
+ info.applicationInfo
.loadLabel(getPackageManager()).toString());
}
} catch (NameNotFoundException e) {
Log.e("The exception is"+e.getMessage());
}
}
检测家庭启动器应用程序-
final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_HOME);
List<ResolveInfo> rinf = getPackageManager().queryIntentActivities(
mainIntent, 0);
if (rinf != null) {
for (ResolveInfo ri : rinf) {
ActivityInfo ai = ri.activityInfo;
if (ai == null) {
continue;
}
Log.i(TAG, "The Home Launcher Activity is " + ai.packageName);
}
}
final Intent maintent=新意图(Intent.ACTION\u MAIN,空);
mainIntent.addCategory(Intent.CATEGORY\u HOME);
List rinf=getPackageManager().queryInputActivities(
主要目的,0);
if(rinf!=null){
对于(ResolveInfo ri:rinf){
ActivityInfo ai=ri.ActivityInfo;
如果(ai==null){
继续;
}
Log.i(标签,“主启动器活动为”+ai.packageName);
}
}
我想通过编程了解?
final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_HOME);
List<ResolveInfo> rinf = getPackageManager().queryIntentActivities(
mainIntent, 0);
if (rinf != null) {
for (ResolveInfo ri : rinf) {
ActivityInfo ai = ri.activityInfo;
if (ai == null) {
continue;
}
Log.i(TAG, "The Home Launcher Activity is " + ai.packageName);
}
}