我有以下代码尝试自动更新我的应用程序:
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