我看到很多关于自动更新的SO问题和答案相当于正确的答案是“没有用户的参与就无法完成”。但是,我的许多应用都在Play商店中选中了“自动更新”复选框,我看到它们会自动更新,然后在通知栏中通知我他们实际上已经更新了。
很清楚它*可以完成...我想知道我的各种选项是什么让我的应用程序拥有此功能。它需要在谷歌Play商店吗?它可以在一些替代商店吗?它是否适用于侧载的等等......
TIA。
答案 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);
}
}
}
如果这是您想要的,您也可以重新启动服务而不是触发活动。