2011-06-28 6 views
7

अक्षम करें मुझे पता है कि उपयोगकर्ताओं के लिए होम बटन पर नियंत्रण रखना बीमार सलाह है। लेकिन मैं शैक्षणिक उद्देश्यों के लिए एंड्रॉइड लॉकडाउन एप्लिकेशन विकसित कर रहा हूं। मैं साइट ब्राउज़ कर रहा था और होम बटन को अक्षम करने पर इस link पर आया था।होम बटन

@override 

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

वर्तमान में मैं अपने घर बटन को निष्क्रिय करने के उपरोक्त कोड का उपयोग कर रहा है, तथापि मैं नोटिस करते हैं कि भले ही मैं अपने onCreate में इस राशि

getWindow.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); 

मैं अपने सूचना पट्टी निकालें करने में असमर्थ हूँ । कृपया सलाह दें।

उत्तर

8

बस अपनी गतिविधि के लिए एक अलग विषय का उपयोग करें। अपने Manifest.xml में, एंड्रॉइड पर अपनी गतिविधि की थीम विशेषता सेट करें: थीम = "@ एंड्रॉइड: स्टाइल/थीम। नॉट टिटलेबार। फुलस्क्रीन"

+0

मैंने किया, लेकिन अभी भी शीर्ष पर अधिसूचना बार है। <गतिविधि एंड्रॉइड: नाम = "android.securitas.lockscreen" एंड्रॉइड: स्क्रीनऑरिएंटेशन = "पोर्ट्रेट" एंड्रॉइड: थीम = "@ एंड्रॉइड: स्टाइल/थीम.NoTitleBar।पूर्णस्क्रीन काम करता है लेकिन अगर मैं पर रखें <आवेदन एंड्रॉयड: लेबल = "@ स्ट्रिंग/app_name" एंड्रॉयड: विषय = "@ एंड्रॉयड: शैली/Theme.NoTitleBar.Fullscreen"> प्लस पावर ऑफ और स्क्रीन के बाद अधिसूचना बार फिर से दिखाई देता है। – edyim

+0

किसी और के पास समाधान है। मैं अब काफी हताश हूँ। :( – edyim

+0

क्या आप अपनी सभी गतिविधियों के लिए एक ही थीम का उपयोग कर रहे हैं? ऐसा लगता है कि कहीं कहीं मेल नहीं हो सकता है? –

3

आप पावर बटन को अक्षम कर सकते हैं! परियोजना:: DisableAllButton

  • अक्षम खोजें, वापस कुंजी: "DisableAllButton.java" में

    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
        return false; 
    } 
    
  • अक्षम होम कुंजी: "DisableAllKey.java" में

    आप इस कोशिश कर सकते हैं
    @Override 
    public void onAttachedToWindow() { 
        // TODO Auto-generated method stub 
        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 
        super.onAttachedToWindow(); 
    } 
    
  • पावरकी अक्षम करें: "DisableAllKey.java"

    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> 
    
  • में

    और AndroidManifest

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

में फुलस्क्रीन सेट में किया! : डी।

+0

इनपुट के लिए धन्यवाद। हालांकि यह मेरे ऐप में जो चाहती है उसे प्राप्त नहीं कर रहा है। मेरा ऐप मूल रूप से एक लॉकस्क्रीन है जो एक एसएमएस द्वारा ट्रिगर किया जाता है। फोन स्क्रीन "चालू" के साथ वर्तमान, अगर एसएमएस आता है गतिविधि अधिसूचना बार के बिना शुरू किया गया है। हालांकि अगर स्क्रीन "ऑफ" है, तो KeyguardManager एंड्रॉइड कीगार्ड स्क्रीन को हटा देती है लेकिन मुझे अधिसूचना बार मिल जाता है। जो वांछित नहीं हो सकता है क्योंकि वहां ऐप्स हो सकते हैं जो मेरी लॉकस्क्रीन को बाईपास कर सकते हैं। – edyim

+0

प्रोजेक्ट DisableAllButton – pengwang

+0

@pengwang mxplayer अक्षमAllButton में कहां है। तो यह कैसे संभव है? – kyogs

0

जांच एंड्रॉयड स्रोत कोड, View.java

public static final int STATUS_BAR_DISABLE_HOME = 0x00200000; 

STATUS_BAR_DISABLE_HOME झंडा मानक एपीआई से छिपाने है।

हम सिर्फ 0x00200000 का उपयोग सिस्टम UI दृश्यता सेट करने के लिए कर सकते हैं, के रूप में:

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

लेकिन आप जोड़ना चाहिए

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

पहले, इस अनुमति केवल सिस्टम के लिए दी गई एप्लिकेशन