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();
이것은 자신의 키 가드 앱을 만드는 데 정말 잘 작동합니다.
'Programing' 카테고리의 다른 글
ffmpeg concat :“안전하지 않은 파일 이름” (0) | 2020.12.02 |
---|---|
서버 측에 적합한 XMPP Java 라이브러리? (0) | 2020.12.02 |
VS2012 용 Crystal Reports-VS2013-VS2015-VS2017 (0) | 2020.12.01 |
프로그래밍 방식으로 Spring을 사용하여 작업 예약 (동적으로 설정되는 fixedRate 사용) (0) | 2020.12.01 |
VS 2012에 ASP.NET MVC 5 웹 응용 프로그램 템플릿이 없습니까? (0) | 2020.12.01 |