Home 키를 브로드캐스트하여 수신

전언
최근에는 안드로이드 폰의 Home 키를 감청해야 하는 프로젝트 모듈을 쓰고 있는데, Home 키는 폰 시스템 키에 속하기 때문에 Activity에서 다른 키를 감청하는 Google은 나에게 상응하는 방법을 제공했다. 유독 Home 키만 제공하지 않았다면 Home 키를 감청할 수 있는 방법은 없을까?답은 있다. 라디오에 등록하는 방식으로 Home 키를 감청하는데 이 방식 이외에 다른 몇 가지 방식이 있다. 그러나 개인적으로 이런 방식이 좋다고 생각하기 때문에 여기서 나는 라디오 방식으로만 Home 키의 설명을 감청하고 타당하지 않은 부분이 있으면 지적해 주기를 바란다.
다음은 코드 부분입니다.
package cn.zt.demo.broadcastreceiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

//      
public class HomeKeyBroadCastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        //      HomeKey  
        Log.d("HomeKey  ");
        }
    }

}
package cn.zt.demo.activity;

import cn.zt.demo.broadcastreceiver.HomeKeyBroadCastReceiver;
import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;

//  activity          Home      ,   Home ,       ,               
public class HomeKeyEventActivity extends Activity {

    private HomeKeyBroadCastReceiver mReceiver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_homekey_event);
        //     ,            ,                  ,      
        registerHomeKeyReceiver();
    }

    private void registerHomeKeyReceiver() {
        mReceiver = new HomeKeyBroadCastReceiver(); 
        //     ,  action:Intent.ACTION_CLOSE_SYSTEM_DIALOGS,    action       Home      
        registerReceiver(mReceiver, new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));  
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if(mReceiver != null){
            //     
            unregisterReceiver(mReceiver);
        }
    }
}

이상은 HomeKey 눌린 사건의 내용을 라디오로 감청하는 것으로, 부적절하면 지적해 주시기 바랍니다.

좋은 웹페이지 즐겨찾기