Как отключить кнопку "Очистить данные" в "Сведениях о приложении" приложения "Управление"
Я работаю на Android 2.2, На вкладке приложения манифеста Android предоставить опцию "Разрешить очистить данные", чтобы установить true или false. Но после установки значения False мое приложение не может отключить кнопку "Очистить данные" в информации о приложении приложения "Управление". Я сталкиваюсь с этой проблемой, когда приложение содержит базу данных в Data/Data/packge-name/database /.
Я должен защитить свою базу данных приложений от пользователя.
3 ответа
Нет способа предотвратить удаление данных вашего приложения пользователем. Упомянутый вами вариант манифеста предназначен только для системных приложений, и вы, как разработчик, не можете устанавливать системные приложения.
Пожалуйста, смотрите это обсуждение для деталей - особенно этот ответ от Дайан Хэкборн (инженер по Android Framework)
Добавлять android:manageSpaceActivity=".ActivityOfMyChoice"
к application
тег вашего манифеста, как:
<application android:label="MyApp" android:icon="@drawable/icon"
android:manageSpaceActivity=".ActivityOfMyChoice">
Тогда вместо "Clear Data"
есть кнопка для "Manage Space"
который запускает ActivityOfMyChoice
Насколько я могу сказать, это работает 100% времени.
AndroidManifest.xml
<application
android:manageSpaceActivity="[packageName].ManageSpaceActivity"
...
...
>
<activity
android:name="[packageName].ManageSpaceActivity"
android:screenOrientation="portrait" />
это назовет мою деятельность, но:
public class ManageSpaceActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
finish();
}// onCreate
}
и активность мертвая при создании, я люблю трюки:)
Теперь вы можете нажимать "Управление пространством" столько, сколько хотите!:))
- если вам нужно, вы можете сделать пользовательское удаление данных / кэша на ManageSpaceActivity
, но вы можете сохранить свои данные, которые вы хотите.
До голосов на Jakar ответ тоже пожалуйста!
Просто уловка.
<application
android:manageSpaceActivity="{packageName}.ManageSpaceActivity"
>
В этом сценарии ОС Android покажет кнопку "Управление пространством" вместо очистки данных.
При нажатии откроется Manage SpaceActivity.
Но
<application
android:manageSpaceActivity=".AnyActivity"
>
Если ты это сделаешь. Это отключит кнопку Очистить данные.
Уловка состоит в том, чтобы написать имя действия без полного имени пакета.