Я создал пусковую установку, чтобы использовать ее во внутреннем приложении. по некоторым соображениям безопасности я хотел бы скрыть системную панель (доступ к параметру ordrer для доступа к установленному приложению). Но я не знаю, как это сделать. Планшет, который будет использоваться, не укоренен. Вы можете мне помочь?можно скрыть системную панель
ответ
Вы не можете скрыть его, но вы можете его отключить, кроме дома. Для этого вы можете предоставить свое приложение в качестве домашней категории и позволить пользователю выбрать.
<category android:name="android.intent.category.HOME" />
Остальные все можно отключить.
Добавить это в манифест.
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>
в OnCreate()
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_home);
View v = findViewById(R.id.home_view);
v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
где home_view является родительское представление XML-файла.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return false;
}
public void onWindowFocusChanged(boolean hasFocus)
{
try
{
if(!hasFocus)
{
Object service = getSystemService("statusbar");
Class<?> statusbarManager = Class.forName("android.app.StatusBarManager");
Method collapse = statusbarManager.getMethod("collapse");
collapse .setAccessible(true);
collapse .invoke(service);
}
}
catch(Exception ex)
{
}
}
спасибо, что это работает. – user2043602
Это не работает для JellyBean 4.3 –
это в вашем методе OnCreate():
requestWindowFeature(Window.FEATURE_NO_TITLE);
EDIT: Скрытие строки состояния потребуется ваше приложение будет полный экран или корневым.
thanks; как только я использую ваше предложение, мое приложение краш. Мне не нужно скрывать название приложения, но чтобы скрыть панель с доступом к сети и параметрам или защитить ее паролем по соображениям безопасности.я не могу запустить устройство, потому что решение будет использоваться с потребительским планшетом и с важным номером, поэтому я не могу укоренять все устройства. – user2043602
Извините, что этого не сделать. Что касается кода, который я вам рекомендовал, поместите его в метод onCreate() и поместите его выше или ниже (извините, а не на моем рабочем столе в данный момент) супер на создание. – 2013-02-11 16:09:49
Tablet, который будет использоваться не укоренены
Тогда вы не можете скрыть его. Однако вы можете использовать SYSTEM_UI_FLAG_HIDE_NAVIGATION
, чтобы скрыть это временное, но он будет получать видны, когда пользователь касается экрана:
Существует ограничение: потому, что элементы навигации настолько важны, наименьшее взаимодействие с пользователем заставит их вновь немедленно. Если это произойдет, и этот флаг и
SYSTEM_UI_FLAG_FULLSCREEN
будут очищены автоматически, так что оба элемента снова появятся на том же времени.
Это правильно. Приложениям не разрешено выполнять действия, которые могут быть использованы как атака отказа в обслуживании пользователя, а также препятствовать доступу пользователя к кнопкам Home или Recents. – adamp
спасибо. но в моем проекте мне нужно создать 2 профиля с доступом ко всем приложениям, а другой - с ограниченным доступом и с некоторым приложением. их для меня нужно скрыть это не временное, но все время. – user2043602
Вы можете скрыть нижнюю панель, я использовал этот код, чтобы скрыть:
getWindow().getDecorView().setSystemUiVisibility(View.GONE);
использовать этот код для андроид поле с клавиатуры или пульта дистанционного управления.
Вы можете скрыть навигационную панель на Android 4.0 и выше, используя флаг SYSTEM_UI_FLAG_HIDE_NAVIGATION. Этот фрагмент кода скрывает как панель навигации и строка состояния:
View decorView = getWindow().getDecorView();
// Hide both the navigation bar and the status bar.
// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
// a general rule, you should design your app to hide the status bar whenever you
// hide the navigation bar.
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions
См следующее: Hiding the Navigation Bar
работает для меня в леденец - за исключением того, что он возвращается, – Clocker
Это то, что вы имеете в виду? http://stackoverflow.com/questions/2868047/fullscreen-activity-in-android – Sean
Я думаю, что мой ответ может вам помочь. – dayanruben