Android自动更新

时间:2012-12-05 01:43:55

标签: android auto-update

我看到很多关于自动更新的SO问题和答案相当于正确的答案是“没有用户的参与就无法完成”。但是,我的许多应用都在Play商店中选中了“自动更新”复选框,我看到它们会自动更新,然后在通知栏中通知我他们实际上已经更新了。

很清楚它*可以完成...我想知道我的各种选项是什么让我的应用程序拥有此功能。它需要在谷歌Play商店吗?它可以在一些替代商店吗?它是否适用于侧载的等等......

TIA。

2 个答案:

答案 0 :(得分:4)

在标准手机上,唯一可行的方法是通过Google Play商店,并且只有在用户选择自动更新后才能完成。当应用程序的权限更改时,它将停止工作。此外,谷歌可以随意从您的设备中删除应用程序。

以上内容适用于所有安装了Google服务和Play商店的Android设备。此外,通过Amazon Appstore for Android购买的应用程序会在Amazon Kindle Fire设备上自动更新,并且一些制造商拥有自己的应用程序商店,其中可能包含该功能;想到三星和联想。

如果你控制硬件或拥有root设备,你可以创建/安装一个系统应用程序,它可以在没有用户干预的情况下安装任何应用程序。

答案 1 :(得分:0)

这里有更多关于如何理论的机制。实际上,这很容易实现。

在你的清单中:

    <receiver android:name=".BcastReciever">
        <intent-filter>
            <action android:name="android.intent.action.PACKAGE_REPLACED" />
            <data android:scheme="package" android:path="com.your.package" />
        </intent-filter>
    </receiver>

然后在你的广播接收器中:

public class BcastReciever extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getDataString().contains("com.your.package")){
            Intent startActivityIntent = new Intent(context, Your.class);
            startActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
            startActivityIntent.setAction("onboot");
            context.startActivity(startActivityIntent);
        }
    }
}

如果这是您想要的,您也可以重新启动服务而不是触发活动。