我目前通过 setApplicationEnabledSetting(String, int, int) 禁用应用程序
该应用程序实际上正在禁用自身。我希望在重新安装该应用程序后,该应用程序会重新启用自身,但事实并非如此。
清单中是否需要特定设置才能使其正常工作。(我试过设置启用=真)
谢谢
我目前禁用除广播接收器之外的所有组件,并试图捕捉安装过程以再次重新启用所有其他组件。至少可以说这是令人讨厌的
我目前通过 setApplicationEnabledSetting(String, int, int) 禁用应用程序
该应用程序实际上正在禁用自身。我希望在重新安装该应用程序后,该应用程序会重新启用自身,但事实并非如此。
清单中是否需要特定设置才能使其正常工作。(我试过设置启用=真)
谢谢
我目前禁用除广播接收器之外的所有组件,并试图捕捉安装过程以再次重新启用所有其他组件。至少可以说这是令人讨厌的
一种方法是收听软件包安装广播并采取相应措施。
Intent.ACTION_PACKAGE_ADDED
在您的广播接收器中收听。显现:
<receiver android:name =".MyReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED"/>
<data android:scheme="package" />
</intent-filter>
</receiver>
接收者:
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (Intent.ACTION_PACKAGE_ADDED.equals(action)) {
final boolean replacing = intent.getBooleanExtra(Intent.EXTRA_REPLACING, false);
final String packageName = intent.getData().getSchemeSpecificPart();
if (replacing && "my.package.name".equals(packageName)) {
// Re-enable the other components
}
}
}
}
希望这可以帮助。