0

我有以下代码来尝试自动更新我的应用程序:

  updateIntent = new Intent(Intent.ACTION_VIEW);
  updateIntent.setDataAndType(Uri.fromFile(new File(apkFile)), "application/vnd.android.package-archive");
  startActivity(updateIntent);

apkFile 包含一个世界可读的 APK 文件的完整路径以及正在运行的应用程序的新版本。
我的代码启动 updater-Intent,我会要求确认安装该应用程序。
我给出这个确认,系统显示一个状态栏并说将安装该应用程序,然后它说无法安装该应用程序,没有任何理由。

日志没有提供进一步的线索:

I/ActivityManager(   61): Starting activity: Intent { dat=file:///data/data/de.lucabert.mybackup/cache/MyBackup.apk cmp=com.android.packageinstaller/.InstallAppProgress (has extras) }
W/InstallAppProgress(  327): Replacing package:de.lucabert.mybackup
I/ActivityManager(   61): Displayed activity com.android.packageinstaller/.InstallAppProgress: 810 ms (total 810 ms)
D/dalvikvm(  294): GC_EXPLICIT freed 257 objects / 16648 bytes in 673ms
D/PackageParser(   61): Scanning package: /data/app/vmdl53189.tmp
D/dalvikvm(   61): GC_EXPLICIT freed 6145 objects / 369824 bytes in 255ms
D/dalvikvm(  212): GC_EXPLICIT freed 102 objects / 6312 bytes in 130ms
I/InstallAppProgress(  327): Finished installing de.lucabert.mybackup
I/global  (  692): Default buffer size used in BufferedWriter constructor. It would be better to be explicit if an 8k-char buffer is required.
D/MyBackup(  692): Update successfully. Closing program

我在模拟器上运行这段代码,使用 Android API 8。
有人能告诉我我做错了什么吗?

非常感谢 Luca Bertoncello

4

0 回答 0