Android 7.0 & 9.0 enregistre les problèmes rencontrés lors de la mise à jour automatique de l'APP

Tout d'abord, la première question :

Après Android 7.0, une erreur est signalée lors de l'ouverture du fichier :

Deuxièmement, la deuxième question, sur Android 9.0, lorsque l'intention est ouverte, elle clignote, mais elle ne peut pas être ouverte, il suffit d'ajouter des autorisations

	 <!--适应android 9.0 调用安装app-->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

Enfin, l'erreur d'analyse du package rencontrée par Android dans la version 9.0, veuillez consulter le code :

 未修改之前代码:
 	
  public static void installUPTSMServiceApk(final Activity activity) {

                File downNewAppFile = new File(Environment.getExternalStorageDirectory().getPath() + "/GDDownload", "UPTSMSeraviceApk.apk");
       			 Intent intent = new Intent(Intent.ACTION_VIEW);

                if (Build.VERSION.SDK_INT >= 24) {
                    intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                    Uri contentUri = FileProvider.getUriForFile(activity, BuildConfig.APPLICATION_ID + ".fileProvider", downNewAppFile);
                    intent.setDataAndType(contentUri, "application/vnd.android.package-archive");
                } else {
                    intent.setDataAndType(Uri.fromFile(downNewAppFile), "application/vnd.android.package-archive");

                }
        		intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                activity.startActivity(intent);
            }
修改之后代码:
	
    public static void installUPTSMServiceApk(final Activity activity) {
        // 启用安装新线程
                File downNewAppFile = new File(Environment.getExternalStorageDirectory().getPath() + "/GDDownload", "UPTSMSeraviceApk.apk");
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                if (Build.VERSION.SDK_INT >= 24) {
                    intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                    Uri contentUri = FileProvider.getUriForFile(activity, BuildConfig.APPLICATION_ID + ".fileProvider", downNewAppFile);
                    intent.setDataAndType(contentUri, "application/vnd.android.package-archive");
                } else {
                    intent.setDataAndType(Uri.fromFile(downNewAppFile), "application/vnd.android.package-archive");

                }
                
                activity.startActivity(intent);
            }

Si vous regardez attentivement le code, vous verrez quelques indices. Peu importe si vous n'avez pas le temps de le lire. En fait, le plus important est de mettre

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

mettre dedans,

   intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

Devant , les raisons spécifiques ne seront pas décrites en détail, et les étudiants intéressés pourront s'y référer par eux-mêmes.

Je suppose que tu aimes

Origine blog.csdn.net/a_Chaon/article/details/90373287
conseillé
Classement