2015-03-04 2 views
-3

Как я разрабатываю приложение для детей, мне нужно отключить кнопку дома, чтобы они не закрывали приложение на классе. Кто-нибудь знает, как отключить его в android 4.X? (кнопка дома - настоящая, но не виртуальная кнопка на экране)Отключить кнопку дома в android 4.x

+1

сделали вы проверили http://stackoverflow.com/questions/17549478/how-to-disable-home-and-other-system-buttons-in -android – AADProgramming

+1

http://stackoverflow.com/questions/2068084/kiosk-mode-in-android –

+0

http://stackoverflow.com/questions/11394843/how-can-i-disable-android-4-0-home -button – duggu

ответ

0

Вы не можете.
Согласно Android documentation кнопка «домой» не доставляется в приложения и не обрабатывается каркасом.

0

Вы можете сделать это в укоренеными устройствами.

Это то, что я сделал для этого:

package com.juanjovega.examples; 

import android.app.Activity; 
import android.os.Build; 
import android.util.Log; 

public class KioskActivity extends Activity { 

    @Override 
    public void onResume() { 
     super.onResume(); 
     // Work around an Android 2.3 bug that sometimes causes us to become 
     // invisible after turning the display off and on with the power button. 
     setVisible(false); 
     setVisible(true); 
    } 

    public static void setFullScreen(boolean fullscreen) { 
     Process proc = null; 

     String ProcID = "79"; // HONEYCOMB AND OLDER 

     if (Build.VERSION.SDK_INT >= 14) { 
      ProcID = "42"; // ICS AND NEWER 
     } 

     try { 
      if (fullscreen) { 
       proc = Runtime.getRuntime().exec("su -c service call activity " + ProcID + " s16 com.android.systemui"); 
       Log.d("kiosk", "Fullscreen mode ON"); 
      } else { 
       Runtime.getRuntime().exec("am startservice --user 0 -n com.android.systemui/.SystemUIService"); 
       Log.d("kiosk", "Fullscreen mode OFF"); 
      } 
     } catch (Exception ex) { 
     } 
     try { 
      proc.waitFor(); 
     } catch (Exception ex) { 
     } 
    } 

    // Override the default Back key action so that we don't lose control. 
    @Override 
    public void onBackPressed() { 
     Log.d("kiosk", "onBackPressed"); 
    } 

    public void clearHomeConfig() { 
     Log.d("kiosk", "clearHomeConfig"); 

     getPackageManager().clearPackagePreferredActivities(getPackageName()); 
    } 

    public void exitApp() { 
     // Restore UI. 
     setFullScreen(false); 

     // Clear home config. 
     getPackageManager().clearPackagePreferredActivities(getPackageName()); 

     // Exit 
     System.exit(0); 
    } 
} 
+0

сделал это произведение ?. – CraZyDroiD

+1

У меня есть эта работа (в единстве3D, через плагин), но я не тестировал ее на многих устройствах, а только на планшете нексуса. Устройство должно быть укоренено, в противном случае вы не сможете работать с сервисами start/stop, и это делает приложение полноэкранным, а не только отключает домашнюю кнопку. Это был лучший вариант, который я нашел. –