2013-07-15 1 views
0

개인 정보 보호가 가장 중요한 앱을 만들고 있습니다. 앱에 입장 할 수있는 비밀번호가 있습니다. 이제 사용자가 HOME 버튼을 누르면 문제가 발생합니다. 그런 다음 현재 작업이 백그라운드로 이동하고 Android 홈 화면이 표시됩니다.Android에서 HOME 버튼의 기능을 맞춤 설정하는 방법은 무엇입니까?

하지만 사용자가 Android 기기에서 앱의 아이콘을 클릭하면 앱은 비밀번호를 묻지 않고 동일한 비공개 상태로 돌아갑니다.

앱의 아이콘을 눌렀을 때만 로그인 활동에서 앱을 시작하고 싶습니다.

각에서

내 활동의 모든 일, 나는 다음과 같은 코드가 있습니다

if ((keyCode == KeyEvent.KEYCODE_HOME)) { 
      Toast.makeText(this, "You pressed the home button!", Toast.LENGTH_LONG).show();      
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 

그러나, 토스트가 표시되지지고 않습니다는 ... 마찬가지로 나는

finish(); 

받는 시도 코드에서 처리합니다. 그러나 그것은 일어나지 않습니다. 홈 버튼의 기능을 제어 할 수 없나요? 아니면 뭔가 빠져 있습니까?

감사합니다.

답변

0

다음 코드를 사용해보십시오.

@Override 
protected void onUserLeaveHint() 
{ 
    super.onUserLeaveHint(); 
    Toast.makeText(this, "You pressed the home button!", Toast.LENGTH_LONG).show(); 
} 
1

그것은 불가능합니다.

앱을 홈 화면으로 설정하지 않으면 Android에서 홈 버튼을 차단할 수 없습니다. 이는 보안상의 이유로 악의적 인 앱이 종료 할 수있는 모든 버튼을 무시하여 기기를 인계받을 수 없도록하기위한 것입니다.

홈 버튼을 처리하려면 홈 화면을 구현하십시오.

하지만 디자인을 다시 생각해 보시기 바랍니다. 사용자에게 로그 아웃 옵션을 남겨 둡니다. Gmail 애플리케이션에서

http://developer.android.com/training/design-navigation/index.html

봐. 홈 버튼을 누르면 로그 아웃되지 않습니다.

@Override 
protected void onUserLeaveHint()  
{  
       super.onUserLeaveHint(); 
       Toast.makeText(this, "You pressed the home button!", Toast.LENGTH_LONG).show(); 
       Log.i("Home button Pressed!", "Yes"); 
       finish(); 
} 

당신은 활동의 결과로 배경으로 이동하는 것입니다 활동 수명주기의 일환으로 호출 API 레벨 3

onUserLeaveHint

protected void onUserLeaveHint()

추가를 사용할 수 있습니다 사용자 선택. 예를 들어 사용자가 홈 키를 누르면 onUserLeaveHint()가 호출되지만 들어오는 전화 통화로 인해 통화 중 작업이 자동으로 포 그라운드로 전달되면 onUserLeaveHint()가 해당 활동에 대해 호출되지 않습니다 중단 된. 호출 될 경우이 메서드는 활동의 onPause() 콜백 직전에 호출됩니다.

이 콜백 및 onUserInteraction()은 상태 표시 줄 알림을 지능적으로 관리하는 활동을 돕기위한 것입니다. 구체적으로, 활동이 통지를 취소하기위한 적절한 시간을 결정하도록 돕는다.

0

모든 의도에서 당신은 배경으로 이동하면 페이지를 완료

intent.addFlag(Intent.FLAG_NO_HISTORY); 

같은 플래그를 추가 할 수 있습니다.

0

홈 버튼은 응용 프로그램에서 제어권을 가져와 사용자를 홈 화면으로 이동합니다 .. 또한 표시되는 토스트는 응용 프로그램의 컨텍스트에 속합니다. 따라서 제어 할 수 없습니다.

관련 문제