Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何检测是否有应用程序已从中升级';安装在设备中的基本版本,并检测它是否是家庭启动器应用程序?_Android_Android Intent_Android Package Managers - Fatal编程技术网

Android 如何检测是否有应用程序已从中升级';安装在设备中的基本版本,并检测它是否是家庭启动器应用程序?

Android 如何检测是否有应用程序已从中升级';安装在设备中的基本版本,并检测它是否是家庭启动器应用程序?,android,android-intent,android-package-managers,Android,Android Intent,Android Package Managers,我如何检测android中的任何系统应用程序(预装)是从其基本软件包升级的 另外,我想知道软件包是否至少包含一个处理home intent筛选器的活动?对于第一个活动,您可以转到“设置”并检查它是否为您提供了卸载或卸载更新的选项(这意味着此apk在系统中) 第二个我会连接设备并检查Logcat 代码: 获取包和它的,在那里你可以访问它的lastUpdateTime和firstInstallTime。关于第二个问题,我不知道,但如果你找到了方法,请与我分享:)我找到了解决方案 检测是否有任何系统应

我如何检测android中的任何系统应用程序(预装)是从其基本软件包升级的


另外,我想知道软件包是否至少包含一个处理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);

     }
  }