2014-09-15 2 views
1

나는 아이들이 사용할 앱을 만들고있어 클라이언트는 나에게 앱을 나가는 방법을 사용하지 못하게하려고한다. 나는 홈 버튼, 다시 버튼을 막을 수 있었지만 다른 앱 버튼은 어땠습니까? 모든 아래쪽 버튼을 숨길 수 있지만 아래에서 위로 스 와이프하여 표시 할 수 있습니다.Android에서 '다른 앱'버튼을 사용 중지 할 수 있나요?

Android에서 '다른 앱'버튼을 사용 중지하거나 앱의 조치를 무시할 수 있습니까?

+2

? 지난 번 확인한 안드로이드에서는 홈 버튼을 차단할 수 없습니다. 몇 가지 코드를 게시하십시오. –

+1

이 기능을 사용하여 어린이 친화적 인 앱을 만들기 위해서는 낮은 수준 (nabi 태블릿에서 사용 된 것과 같은)을 지원하는 기기에 설치된 어린이 용 맞춤형 ROM이 필요하거나 루트가 있어야합니다 ROM에 대한 설정 파일을 수동으로 편집 할 수 있어야합니다. 응용 프로그램 자체와 탐색을 차단하는 응용 프로그램이 별도의 응용 프로그램이되어야한다고 생각합니다. –

+0

좋아, 어떻게 홈 단추를 비활성화 했습니까? 정말 재미있을 것입니다. – icbytes

답변

0

ICS (Android 4 이상) 이후에는 보안상의 이유로 홈 버튼의 우선 적용이 제거되어 응용 프로그램이 악성 코드로 판명 될 경우 사용자 이탈을 허용합니다. 특히 차단

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/tvInfo" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="Hi! This is the testing of override home button" /> 

    <ToggleButton 
     android:id="@+id/btnLock" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textOff="UnLocked" 
     android:textOn="Locked" /> 

</LinearLayout> 

코드 - Overriding Home Button

코드 추출 - -

public class DisableHardButton extends Activity { 
    TextView mTextView; 
    ToggleButton mToggleButton; 
    boolean isLock=false; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    mTextView=(TextView) findViewById(R.id.tvInfo); 
    mToggleButton=(ToggleButton) findViewById(R.id.btnLock); 

mToggleButton.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

    @Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
     isLock=isChecked; 
     onAttachedToWindow(); 
    } 
}); 
} 

@Override 
public boolean dispatchKeyEvent(KeyEvent event) { 

    if ((event.getKeyCode() == KeyEvent.KEYCODE_HOME) && isLock) { 
     mTextView.setText("KEYCODE_HOME"); 
     return true; 

    } else { 
     return super.dispatchKeyEvent(event); 
    } 

} 

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 

    if((keyCode==KeyEvent.KEYCODE_BACK) && isLock) { 
     mTextView.setText("KEYCODE_BACK"); 
     return true; 
    } else { 
     return super.onKeyDown(keyCode, event); 
    } 
} 

@Override 
public void onAttachedToWindow() { 
    System.out.println("Onactivity attached :"+isLock); 

if(isLock) { 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);  
    super.onAttachedToWindow(); 

} else { 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION);  
    super.onAttachedToWindow(); 
} 
} 
} 

XML 여기


4.0 아래 장치에서 홈 버튼을 차단하기위한 글입니다 티 그가 다시 버튼 -

@Override 
public void onBackPressed() { 
    //Do nothing 
} 

및 대한 API (5) 사용 후 이전이 :

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     //Do nothing 
     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 
당신이 홈 버튼을 차단 않은 방법
관련 문제