2013-11-28 3 views
1

Я пробовал много разных способов сделать это. Ниже приводятся причины, по которым я не могу их использовать: - Мое приложение будет установлено на более чем 200 планшетах, так что он меня убьет, если я хочу загрузить приложения (например, Hide Bottom Bar или full!screen) для блокировки моего приложения и его установки каждая таблетка. - Коды обычно работают для предыдущей версии Android (3), но я использую JellyBean 4.2Скрыть программные клавиши на панели навигации (система)

Несмотря на то, что я использовал много программных кодов в своей деятельности (и не из них работал), у меня также есть попробовал много разных кодов в моем файле манифеста.

Все, что мне нужно сделать, это отключить мягкие клавиши на панели навигации, я даже не хочу, чтобы скрыть панель навигации (но если вы можете предложить способ, почему бы и нет?)

Ниже мой код в моем файле манифеста, чтобы показать вам, сколько различных кодов я пытался и все еще застряли в этой вещи:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.androiddbconnection" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="10" 
    android:targetSdkVersion="17" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
<application 

    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.example.androiddbconnection.JSONUseActivity" 
     android:label="@string/app_name" 
     android:launchMode="singleInstance" 
     android:stateNotNeeded="true" 
     > 
     <intent-filter> 
      <action android:name="android.settings.SETTINGS" /> 
      <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.LAUNCHER" /> 
     </intent-filter> 
    </activity> 



    <activity 
     android:name=".Webview" 
     android:theme="@android:style/Theme.NoTitleBar" 
     android:label="@string/app_name" > 

    </activity> 

</application> 

Любое предложение? Я также столкнулся с этим: You need to write your own home screen app which will implement the lockscreen behaviour that you require. There is sample code for writing your own home screen app in the Android SDK(Source code). Если вы считаете, что это хороший способ, расскажите мне, как это сделать?

P.S., я знаю, что в этой версии Android это проблема безопасности, поэтому, пожалуйста, дайте мне то, что я действительно могу использовать. Заранее спасибо.

ответ

1

Попробуйте (, если вы строите свои собственные прошивки или у вас есть система UID)

int DISABLE_MASK = StatusBarManager.DISABLE_MASK; 

    StatusBarManager mStatusBarManager = 
      (StatusBarManager)getSystemService("statusbar"); 
    mStatusBarManager.disable(DISABLE_MASK_IW); 

Константа DISABLE_MASK определяются как:

DISABLE_MASK = DISABLE_EXPAND | DISABLE_NOTIFICATION_ICONS 
      | DISABLE_NOTIFICATION_ALERTS | DISABLE_NOTIFICATION_TICKER 
      | DISABLE_SYSTEM_INFO | DISABLE_RECENT 
      | DISABLE_HOME | DISABLE_BACK | DISABLE_CLOCK; 

И вам нужно это разрешение

<uses-permission android:name="android.permission.STATUS_BAR" /> 

Подробнее о флагах s:

public static final int DISABLE_EXPAND = View.STATUS_BAR_DISABLE_EXPAND; 
public static final int DISABLE_NOTIFICATION_ICONS = View.STATUS_BAR_DISABLE_NOTIFICATION_ICONS; 
public static final int DISABLE_NOTIFICATION_ALERTS 
     = View.STATUS_BAR_DISABLE_NOTIFICATION_ALERTS; 
public static final int DISABLE_NOTIFICATION_TICKER 
     = View.STATUS_BAR_DISABLE_NOTIFICATION_TICKER; 
public static final int DISABLE_SYSTEM_INFO = View.STATUS_BAR_DISABLE_SYSTEM_INFO; 
public static final int DISABLE_HOME = View.STATUS_BAR_DISABLE_HOME; 
public static final int DISABLE_RECENT = View.STATUS_BAR_DISABLE_RECENT; 
public static final int DISABLE_BACK = View.STATUS_BAR_DISABLE_BACK; 
public static final int DISABLE_CLOCK = View.STATUS_BAR_DISABLE_CLOCK; 

@Deprecated 
public static final int DISABLE_NAVIGATION = 
     View.STATUS_BAR_DISABLE_HOME | View.STATUS_BAR_DISABLE_RECENT; 

public static final int DISABLE_NONE = 0x00000000; 
+0

Можете ли вы рассказать мне, как я буду использовать его? потому что я попытался использовать его, и я получаю эту ошибку: Синтаксическая ошибка на токене «DISABLE_MASK», VariableDeclaratorId ожидается после этого токена, а также statuesBarManager не распознается. Я имею в виду использовать его в своем onContent() или что? – Sean

+0

Вы пренебрегаете упоминанием, что 'android.permission.STATUS_BAR' недоступен для сторонних приложений. –

+0

О, извините, я забыл, что этот код принадлежит моей собственной прошивке, вам нужно системное pid для этого. – Robin

Смежные вопросы