2016-06-08 44 views
-1

有沒有什麼辦法可以通過編程方式禁用軟密鑰?如何在android中以編程方式禁用軟家庭密鑰?

public boolean isSoftKeyAvail(Context context) { 
    final boolean[] isSoftkey = {false}; 
    final View activityRootView = ((Activity) context).getWindow().getDecorView().findViewById(android.R.id.content); 
    activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 
     @Override 
     public void onGlobalLayout() { 
      int rootViewHeight = activityRootView.getRootView().getHeight(); 
      int viewHeight = activityRootView.getHeight(); 
      int heightDiff = rootViewHeight - viewHeight; 
      if (heightDiff > 100) { // 99% of the time the height diff will be due to a keyboard. 
       isSoftkey[0] = true; 
      } 
     } 
    }); 
    return isSoftkey[0]; 
} 

public int getStatusBarHeight(){ 
    int result=0; 
    int resourceId= mContext.getResources().getIdentifier("status_bar_height", "dimen", "android"); 
    if(resourceId >0) 
     result = mContext.getResources().getDimensionPixelSize(resourceId); 

    return result; 
} 

回答

0

使用此:

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

或者設置表現爲:

<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.MONKEY"/> 
+0

其不工作的棒棒糖設備 –

+0

試試這個: @Override public void onAttachedToWindow(){ this.getWindow()。setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG); KeyguardManager keyguardManager =(KeyguardManager)getSystemService(KEYGUARD_SERVICE); KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); lock.disableKeyguard(); } –

0
@Override 
public void onAttachedToWindow() { 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG); 
    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); 
    KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); 
    lock.disableKeyguard(); 
} 
0

試試這個,

InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 
相關問題