Programing

Android-홈 버튼 클릭을 비활성화 할 수 있습니까?

crosscheck 2020. 12. 2. 08:00
반응형

Android-홈 버튼 클릭을 비활성화 할 수 있습니까?


나는 응용 프로그램을 가지고 있는데, 그것이 시작될 때 나는 안드로이드 장치의 모든 버튼을 비활성화해야하고, 통화 종료 및 기타를 비활성화하는 데 성공했습니다. 홈 버튼 클릭을 비활성화해야합니다. 클릭시 어떠한 작업도 생성하지 않아야합니다.

높이 평가되는 제안


나는 Toddler Lock이 BroadcastReciever를 사용 Intent.ACTION_MAIN하고 카테고리를 수신 Intent.CATEGORY_HOME한다고 확신합니다. 이것이 처음 시작할 때 "이 응용 프로그램을 기본값으로 사용"상자를 선택하라는 메시지를 표시하고 유아용 잠금 장치를 선택하게하는 이유입니다.

따라서 실제로 홈 버튼을 전혀 차단하지 않고 다음을위한 기본 브로드 캐스트 수신기로 설정하는 것입니다.

Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);

Toddler Lock을 실행하면 내부 플래그가 설정 될 수 있으며 홈 버튼을 누르면 창을 앞으로 가져옵니다. 플래그가 설정되지 않은 경우 Launcher를 명시 적으로 시작합니다.

그게 말이 되길 바랍니다. 그것은 단지 이론 일 뿐이지 만 그것이 어떻게 이루어 졌는지 거의 100 % 확신합니다.


활동에 다음 코드를 추가하십시오.

@override

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

편집하다:

이것은 안드로이드의 모든 이전 버전에서 작동합니다. 그러나 젤리 빈 에서 작동하지 않고ICS 앱에서 충돌을 줄 것입니다.

이 4 줄 자바 코드는 안드로이드 애플리케이션에서 무엇을 의미합니까?


주요 활동을 위해 manifest.xml에 다음을 추가하십시오.

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME" />

홈 버튼은 항상 활동을 (다시) 시작합니다. Froyo에서 작동합니다.


여기 에서 홈 페이지에 유지되는 내 Android 샘플 애플리케이션을 찾을 수 있습니다. 홈, 뒤로, 통화, 전원 버튼이 비활성화됩니다. 사용자는 비밀번호를 입력해야만 애플리케이션을 종료 할 수 있습니다.


홈 키를 다루는 방법을 찾았습니다. 애플리케이션의 경우 매니페스트를 다음과 같이 설정하십시오.

<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"/>

이제 ur 응용 프로그램은 대체 Launcher 응용 프로그램입니다.

adb를 사용하고 패키지 관리자를 사용하여 런처 애플리케이션을 비활성화합니다.

pm disable com.android.launcher2

이제 홈 키 누름은 동일한 화면에 그대로 유지됩니다.


Jeffreys 게시물에 추가 된 내용은 여기에 저에게 도움이되는 내용이 있습니다 (반투명 테마도 허용됨).

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

키 가드가 나타나기 때문에 앱을 사용하는 동안 키 가드를 비활성화 할 수도 있습니다.

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

이것은 자신의 키 가드 앱을 만드는 데 정말 잘 작동합니다.

참고URL : https://stackoverflow.com/questions/2162182/android-is-it-possible-to-disable-the-click-of-home-button

반응형