Каковы будут последствия удаления Settings.APK для моего устройства Android?

Я разрабатываю киоск-приложение (установленное на корневом устройстве Android) и хотел бы удалить доступ к настройкам. Думаю это можно сделать, просто удалив "settings.apk", я прав? Если нет, пожалуйста, поправьте меня.

Вопрос в том, каковы будут побочные эффекты удаления Settings.apk? Есть ли что-то, о чем я должен знать?


person SebastianT    schedule 28.01.2014    source источник
comment
Возможно, вам стоит попробовать этот форум: android.stackexchange.com   -  person Stephane Mathis    schedule 28.01.2014
comment
Этот вопрос лучше задать на android.stackexchange.com.   -  person Unsigned    schedule 29.01.2014
comment
Спасибо за совет.   -  person SebastianT    schedule 29.01.2014


Ответы (2)


Ну да, если вы удалите Settings.apk, вы сломаете много вещей. Скажем, функциональность с точки зрения новых соединений Wi-Fi, сопряжения по синему зубу, настройки звука. Кроме того, вы нарушите ссылки на него, например, когда пользователь попытается запустить настройки из раскрывающегося списка строки состояния или панели запуска, это приведет к сбою соответствующего приложения, будь то система или пользователь. Но зачем удалять апк? Тай ищет альтернативы, которые просто ограничили бы доступ пользователей к нему. Надеюсь, я помог.

person Aashir    schedule 28.01.2014
comment
Да вы сделали. Спасибо. На самом деле мне нужно найти способ заменить или отключить этот доступ к настройкам запуска, который находится в раскрывающемся списке строки состояния. Вы знаете, как это сделать? - person SebastianT; 28.01.2014
comment
Это возможно, но для этого потребуется отредактировать исходный код Android, в качестве альтернативы вы можете отключить расширение строки состояния или выпадающее меню. Взгляните на: stackoverflow.com/a/20008799/2558344 - person Aashir; 28.01.2014
comment
Спасибо за помощь. Знаете ли вы, можно ли при рутировании устройства ограничить (запросить пароль) определенные apk? Очевидно, это будет для Settings.apk - person SebastianT; 28.01.2014
comment
Это можно сделать без рутирования устройства, в магазине игр есть много приложений, которые уже могут заблокировать определенные приложения для вас. Оглянитесь вокруг, возможно, вы найдете что-то похожее. - person Aashir; 28.01.2014
comment
Да, я нашел несколько вполне приличных, но мне нужно что-то, что не требует сторонних приложений. - person SebastianT; 28.01.2014
comment
Нет-нет, не приложения. Я имел в виду их функциональность, которую вы можете сделать из своего собственного приложения. - person Aashir; 28.01.2014
comment
Я не могу представить, что это легко. Есть ли у вас какие-либо идеи о том, как это сделать? - person SebastianT; 28.01.2014
comment
Это не так, но всегда есть это: stackoverflow.com/a/7322371/2558344 - person Aashir; 28.01.2014

Я думаю, что это плохая идея. Я думаю, вам нужно создать приложение, которое может работать на экране блокировки. В основной FragmentActivity необходимо добавить следующие флаги Windows:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_layout);

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

}

Если на вашем устройстве есть физическая кнопка «Домой», вам нужно добавить в свой AndroidManifest флаги для приложения запуска:

<activity
    android:name="YourFragmentActivity"
    android:label="@string/app_name"
    android:theme="@style/MyTheme" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.HOME" /> 
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.MONKEY" />
    </intent-filter>
</activity>

Вы должны добавить метод блокировки на свое устройство (булавка, графический ключ и т. д.). Затем запустите приложение, нажмите кнопку блокировки (экран будет выключен), снова нажмите кнопку блокировки. И ваше приложение будет на экране блокировки. (и никто не может войти в настройки)

Чтобы избежать выхода:

@Override
public void onBackPressed() {
    if (firstfragment.isVisible()) { //first fragment loaded in your backstack

    } else {
        super.onBackPressed();
    }
}

ОБНОВЛЕНИЕ

Вот видео, показывающее, как это работает:

http://www.youtube.com/watch?v=ZtNAAVy_nWY

ПД: Извините, мой английский плохой.

person ClarkXP    schedule 28.01.2014
comment
Спасибо за ответ. Хотя я не понимаю, что вы на самом деле хотите сделать. - person SebastianT; 29.01.2014
comment
Запуск приложения на экране блокировки предотвращает доступ пользователя к меню настроек. Кроме того, если вы настроите свое приложение в AndroidManifest, например Launcher App, когда пользователи нажмут кнопку «Домой», откроется ваше киоск-приложение. Посмотрите видео, чтобы увидеть, как это работает. - person ClarkXP; 29.01.2014
comment
спасибо за видео. У меня тоже приложение настроено на работу в качестве лаунчера. - person SebastianT; 30.01.2014