安装Android APK没有提示

Tom*_*mCB 22 android install root

我们正在撰写一款在大屏幕上展示广告的Android应用.我们有一个广告客户可以选择广告的后端,因此它们几乎可以立即更新.因为会有很多Android盒子运行(插入HDMI屏幕),我们应该能够远程更新我们的软件.

情况就是这样:

主应用程序持续运行(除非关闭),用户从未看到任何与Android相关的内容.我们需要一个更新程序应用程序来侦听更新并删除主apk,安装一个新的apk.在更新时,我们将显示"正在更新,请稍候"的活动,直到新的主apk安装并显示.

我们需要的:

我们需要有关如何实现更新机制的帮助,而不会在ROOTED DEVICE上提示用户.

我们有什么:

更新程序应用程序挂钩到启动服务启动的启动接收事件(此服务将侦听更新,这将由同事很快实现).该服务可以启动一个活动,该活动将在更新时提示更新信息.

在更新程序活动中

 try {
            Process proc = Runtime.getRuntime().exec(new String[]{"su", "pm install -r /mnt/sdcard/MYFOLDER/testAPK.apk"});
            stringBuilder.append(String.valueOf(proc.waitFor()));
            stringBuilder.append("\n");
        } catch (Exception e) {
            if (e instanceof IOException) {
                Log.d(TAG, "IOException");
            } else if (e instanceof InterruptedException) {
                Log.d(TAG, "InterruptedException");
            } else {
                e.printStackTrace();
            }
        }
Run Code Online (Sandbox Code Playgroud)

StringBuilder打印11,但如果我给出随机的现有命令,它会一样.

在清单中

<!-- Permission to start UpdaterService on boot -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<!-- Install/delete permissions, only granted to system apps -->
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.DELETE_PACKAGES" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)

如果我不将我的应用程序安装为系统应用程序,安装包和删除包是没用的,我是否正确?

长话短说,没有安装我的测试APK,我也不知道如何解决这个问题.任何帮助,将不胜感激!

Pal*_*lak 26

您可以使用adb install命令以静默方式安装/更新APK.示例代码如下

public static void InstallAPK(String filename){
    File file = new File(filename); 
    if(file.exists()){
        try {   
            String command;
            command = "adb install -r " + filename;
            Process proc = Runtime.getRuntime().exec(new String[] { "su", "-c", command });
            proc.waitFor();
        } catch (Exception e) {
        e.printStackTrace();
        }
     }
  }
Run Code Online (Sandbox Code Playgroud)

要么

请查看 http://paulononaka.wordpress.com/2011/07/02/how-to-install-a-application-in-background-on-android/

  • 它工作,我使用"pm install"而不是"adb install"!谢谢! (8认同)
  • 需要扎根设备!像魅力一样工作,su命令需要root设备 (7认同)