안드로이드마켓에 있는 AIDE를 이용해서 앱을 만들어봤습니다.
후라시 앱 만들어봤습니다.
후라시 앱이 하도 악성코드 심어져있는게 많아서 함 만들어봤습니다.
설치할때 카메라 제어 권한이 필요한데, 그건 후라시앱에서는 꼭 필요하니 걱정하지들 마시길..
초간단 기능..
함 써보세들~
https://play.google.com/store/apps/details?id=com.kongmemo.app
import android.app.*;
import android.hardware.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import java.util.*;
public class MainActivity extends Activity implements View.OnClickListener // 버튼클릭을 이 Activity에서 처리하기 위해 OnClickListener 인터페이스를 따름
{
private Camera camera; // 카메라객체
private Camera.Parameters p; // 카메라파라미터
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn_switch = (Button)findViewById(R.id.btn_switch); // 리소스 버튼
btn_switch.setOnClickListener(this); // 현재 액티비티를 리스너로 설정
btn_switch.setTag(1); // 켜짐과 꺼짐 상태를 판단하기 위해 tag 속성 이용(1이 켜진 상태, 0이 꺼진상태)
setLight(true); // 앱 실행하자마자 켜지도록 함
}
@Override
protected void onPause() // 앱이 중단된 상태(홈버튼 눌러 내려간 상태)에는 후라시를 끔
{
// TODO: Implement this method
Button btn = (Button)findViewById(R.id.btn_switch);
int tag =btn.getTag();
if ( tag == 1 ) // 켜진 상태라면 후라시를 끔
{
btn.setTag(0);
setLight(false);
}
super.onPause();
}
@Override
protected void onResume() // 앱이 다시 활성화된 경우 후라시를 켜줌
{
// TODO: Implement this method
Button btn = (Button)findViewById(R.id.btn_switch);
int tag =btn.getTag();
if ( tag == 0 )
{
btn.setTag(1);
setLight(true);
}
super.onResume();
}
private void setLight(boolean ison)
{
if (ison)
{
camera = Camera.open(); // 카메라 객체 얻어옴
p = camera.getParameters(); // 현재의 카메라 상태 얻어옴
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); // 후라시를 켜는 상태로 변경
camera.setParameters(p); //후라시 상태를 카메라객체에 적용
camera.startPreview(); // 카메라상태에 맞게 카메라를 동작
}
else
{
p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF); //후라시 상태를 꺼진 상태로 변경
camera.setParameters(p); // 후라시 상태를 카메라객체에 적용
camera.stopPreview();//카메라상태에 맞게 카메라 중지
camera.release(); // 카메라객체를 release 해줌
}
}
@Override
public void onClick(View p1)
{
// TODO: Implement this metho
Button btn = (Button)p1;
int tag =btn.getTag();
tag = tag==1 ? 0 : 1; // 버튼클릭시 켜짐/꺼짐 상태를 토글시켜줌
btn.setTag(tag);
setLight(tag==1); // 토글된 상태에 맞게 카메라 조작
}
}
------------------------------------------------------------
main.xml ( 버튼 하나만 커다랗게 띄운다 )
<?xml version="1.0" encoding="utf-8"?>
< LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical">
< Button
android:layout_height="match_parent"
android:text="ON / OFF"
android:layout_width="match_parent"
android:id="@+id/btn_switch"/>
< /LinearLayout>
-----------------------------------------------------------------
AndroidManifest.xml ( 카메라 권한을 준다. 그리고, 세로방향으로만 되도록 한다.)
<?xml version="1.0" encoding="utf-8"?>
< manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.kongmemo.app"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
< uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera"/>
< application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:label="@string/app_name"
android:name=".MainActivity"
android:screenOrientation="portrait" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
< /manifest>