2011-06-28 8 views
7

devre dışı bırakın. Ama eğitim amaçlı bir robot kilitleme uygulama geliştiriyorum. Ben siteyi gezen ve ev düğme sakatlar bu link üzerine geldi.Home düğmesine Ben kullanıcılar için ANA düğmesinin kontrol altına almak için hasta danışma olduğunu biliyoruz

@override 

public void onAttachedToWindow() 
{ 
     this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);  
     super.onAttachedToWindow(); 
} 

Şu ancak ben fark yok, benim ev düğmesini devre dışı bırakmayı yukarıdaki kodu kullanıyorum bu benim onCreate bu olsa bile

benim bildirim çubuğu kaldır kaldırmak alamıyorum
getWindow.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); 

. Lütfen tavsiye edin.

cevap

8

Sadece aktivite için farklı bir tema kullanın. Manifest.xml'inizde, etkinliğinizin tema özelliğini android olarak ayarlayın: theme = "@ android: style/Theme.NoTitleBar.Fullscreen"

+0

, ama yine de üstte bildirim çubuğu var. Artı Ekran kapanmadan ve açıldıktan sonra bildirim çubuğu tekrar belirir. – edyim

+0

Başka herkesin bir çözümü var. Şimdi çok çaresizim. :( – edyim

+0

Tüm aktiviteleriniz için aynı temayı kullanıyor musunuz? Bir yerde uyumsuzluk olabileceği görünüyor mu? –

3

Güç düğmesini devre dışı bırakabilirsiniz! Projesi: DisableAllButton

  • Devre Dışı Arama, Geri tuşu: "DisableAllButton.java" in

    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
        return false; 
    } 
    
  • Devre Dışı Ev tuşu: "DisableAllKey.java" in

    bunu deneyebilirsiniz
    @Override 
    public void onAttachedToWindow() { 
        // TODO Auto-generated method stub 
        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 
        super.onAttachedToWindow(); 
    } 
    
  • Devre Dışı Powerkey: "DisableAllKey.java" AndroidManifest

    <application android:icon="@drawable/icon" android:label="@string/app_name" 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> 
    

yılında

KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Activity.KEYGUARD_SERVICE); 
KeyguardManager.KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); 
lock.disableKeyguard(); 
  • AndroidManifest

    <uses-permission android:name="android.permission.DISABLE_KEYGUARD"></uses-permission> 
    
    içinde

    ve set tam ekran yapılan! : D.

  • +0

    Girdiğin için teşekkürler.Ancak bu benim uygulamada istediğimi elde etmiyor. Benim app temelde bir lockscreen bir sms tarafından tetiklenir. sms geldiğinde bildirim bildirim çubuğu olmadan başlatılır. Ancak ekran "kapalı" ise, KeyguardManager android Keyguard ekranını kaldırır ama bir bildirim çubuğu alırsınız. Kilit ekranımı bypass edebilecek uygulamalar olabileceğinden, bu arzu edilmeyebilir. – edyim

    +0

    Proje nerede DisableAllButton – pengwang

    +0

    @pengwang mxplayer disableAllButton.So nasıl mümkün olabilir? – kyogs

    0

    onay Android kaynak kodu, View.java

    public static final int STATUS_BAR_DISABLE_HOME = 0x00200000; 
    

    STATUS_BAR_DISABLE_HOME bayrak standart API gelen gizlemek olduğunu.

    biz, tıpkı sistem ui görünürlüğünü ayarlamak için 0x00200000 kullanabilirsiniz:

    View decorView = getWindow().getDecorView(); 
    decorView.setSystemUiVisibility(decorView.getSystemUiVisibility()|0x00200000); 
    

    ancak, sadece sisteme verilen bu izin uygulamaları

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

    ilk eklemek gerekir

    yaptım
    İlgili konular