2016년 4월 20일 수요일

안드로이드 시스템을 이용해서 블루투스(Bluetooth) 활성화 하기





BluetoothAdapter 클래스의 enable()라는 메소드를 통해서 Bluetooth를 강제적으로 활성화 할수 있으나
사용자로 하여금 선택할 수 있도록 하는 것이 더 바람직하다.

Google의 Android API Reference에서도 public boolean enable () 메소드에 대한 설명 가운데는
다음과 같이 사용자의 명백한 행동 없이
강제적으로 Bluetooth를 활성화시키지 말라고 얘기하고 있다.

Turn on the local Bluetooth adapter—do not use without explicit user action to turn on Bluetooth.

이때 Bluetooth를 활성화 하는 방법으로 Intent를 통해서 안드로이드 시스템에게 요청해서 
안드로이드 시스템이 사용자에게 다이얼로그 창을 띄워서 사용자가 선택하게 하고
사용자가 Bluetooth를 활성화하도록 선택을 하면 안드로이드 시스템이 Bluetooth를 
활성화 시키도록 하는 방법이 있다.
이때 BluetoothAdapter.ACTION_REQUEST_ENABLE라는 action을 Intent를 통해서
안드로이드 시스템에게 요청을 하면 된다.

Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivity(enableBtIntent)라고 해도 되나 사용자가 어떤 선택을 했느냐에 따라서
그에 맞는 어떤 행동을 해야할 필요가 있기때문에 startActivityForResult()를 사용했다.
사용자의 선택 여부를 통보받는 곳이 protected void onActivityResult() 메소드를 통해서이다.

ENABLE_BT가 전역변수를 다음과 같이 선언되어 있다고 할 때
private static final int ENABLE_BT = 1;

아래는 안드로이드 시스템에게 Bluetooth 활성화 여부를 사용자에게 묻고
그 결과에 따라 활성화를 하도록 하는 코드이다.

startActivityForResult(enableBtIntent, ENABLE_BT);

사용자의 선택결과를 통보 받기 위해서는 onActivityResult()를 이용하면 된다.

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if (requestCode == ENABLE_BT  
               && resultCode == Activity.RESULT_CANCELED){
Toast.makeText(this, "취소 했습니다", 1).show();
        finish();
} else if (requestCode == ENABLE_BT 
               && resultCode == Activity.RESULT_OK){
Toast.makeText(this, "블루투스를 활성화합니다.", 1).show();
   }
}

2016년 4월 1일 금요일

PHP에서 2차원 배열의 내용을 출력하는 편리한 방법.





PHP에서 2차원 배열의 내용을 출력하는 편리한 방법.

PHP에서 2차원 배열 전체를 출력하고자 할때 
list()함수와 each()함수를 이용하면 쉽게 구현할 수 있다.


<?php
$kkk = array(
    array('TIR', 'Tires', 100),
            array('OIL', 'Oil', 10),
            array('SPK', 'Spark Plugs', 4),
            array('ABC', 'Alphabet', 50)
           );

for($i=0; $i<4; $i++) {
while(list($k, $v) = each($kkk[$i])) {
echo $k." => ".$v."<br>";
}
echo "<br/>";
}
?>

each()함수는 배열(여기서는 $kkk)의 처음부터 차례대로 하나씩 key-value의 쌍으로 반환하다가 끝에 도달하면 자동으로 멈춘다.
list()함수는 key-value의 쌍을 2개의 변수(여기서는 $k와 $v)에 나누어 담는 역할을 한다.

위의 코드를 실행하면 아래와 같이 출력된다.

0 => TIR
1 => Tires
2 => 100

0 => OIL
1 => Oil
2 => 10

0 => SPK
1 => Spark Plugs
2 => 4

0 => ABC
1 => Alphabet
2 => 50