Android:无需用户干预即可在后台更新其他应用的应用

时间:2012-04-03 04:34:31

标签: android shell

我在Android设备上安装了版本1的应用'A'。还有另一个应用'B',其中有2个应用'A'的APK。应用程序“B”应自动更新版本2的应用程序“A”。我这样做了:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://" + apkPath), APK_MIMETYPE);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent); 

问题在于它提示用户干预(要求点击'安装'按钮)来更新应用'A'。我要求应用'A'在后台静默更新。
< / p>

条件:

  1. 设备未植根。
  2. 系统证书密钥可用。应用“B”可以作为系统应用运行,其共享用户标识为android.uid.system
  3. 是否可以在上述条件下进行静音升级?可以使用Runtime.getRuntime().exec() API以编程方式从shell命令完成吗?

1 个答案:

答案 0 :(得分:0)

我不认为没有用户交互就可以实现它。你可以通过一个shell脚本来实现它,它可以通过包管理器安装应用程序 exmple脚本保存为,并确保通过命令行或shell

完成chmod + x sample.sh

sample.sh

 #!system/bin/sh

 pm install -r Myandroid_application_path/my.apk

调用Runtime.getRuntime()。EXEC() 可能它适合你,但它在我的星系笔记中不适合我 我试过这个代码你也可以尝试,如果它工作,请更新

            Process proc = null;

    try {
        Runtime rt = Runtime.getRuntime();
        Process proc= rt.exec("/system/bin/pm install -r /mnt/sdcard/chess.apk");

    } catch (IOException e) {
        // TODO Auto-generated catch block
        Log.d("in catch", ""+proc.getErrorStream());

    }

我在android中看到了一些脚本运行器Gscript,但我认为它只能在root手机上运行它也无法在我的银河系音符中运行