Как отключить кнопку "Очистить данные" в "Сведениях о приложении" приложения "Управление"

Я работаю на 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"
    >

Если ты это сделаешь. Это отключит кнопку Очистить данные.

Уловка состоит в том, чтобы написать имя действия без полного имени пакета.

Другие вопросы по тегам