カメラ撮影時のWAKELOCKについて

216 views
Skip to first unread message

toshi

unread,
Feb 21, 2011, 12:42:48 PM2/21/11
to 日本Androidの会
現在、カメラアプリを作成していますが、
カメラの動作が長くなるためWAKELOCKをかけたいと考えています。

下記のソースで実装しようとしましたが、エラーがでて落ちてしまいます。
どのようにすればよいのでしょうか?ご存じの方よろしくお願いします!!

public class video_rec extends Activity {
/** Called when the activity is first created. */
public static final String PREFERENCES_FILE_NAME =
"PreferencesFile";
PowerManager pm = (PowerManager)
getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl =
pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
    wl.acquire();


getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
requestWindowFeature(Window.FEATURE_NO_TITLE);

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setContentView(new CameraView(this));

}

public void onDestroy() {
wl.release();
}

sakamoto toshiyuki

unread,
Feb 21, 2011, 8:19:08 PM2/21/11
to android-g...@googlegroups.com, toshi
坂本といいます。こんにちは。

<uses-permission android:name="android.permission.WAKE_LOCK" />
は設定されましたか?


それでは


2011年2月22日2:42 toshi <funa...@gmail.com>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>

Tomo Watanabe

unread,
Feb 21, 2011, 9:45:04 PM2/21/11
to android-g...@googlegroups.com
渡辺です

蛇足ですが、WAKELOCKを掛ける位置がちょっとマズイ気がします。

一般的には
onResume()でacquire()
onPause()でrelease()
する方がいいですね。

#onDestroy()は呼ばれない確率が高いので、ロックされっぱなしになります

2011年2月22日10:19 sakamoto toshiyuki <sakamo...@gmail.com>:

toshi

unread,
Feb 22, 2011, 10:31:02 AM2/22/11
to 日本Androidの会
ありがとうございます!

パーミッションは忘れていました。。。
またWakelockの位置についてもかえてみましたが
やはりエラーでストップしてしまいます。
テストで
PowerManager pm = (PowerManager)
getSystemService(Context.POWER_SERVICE);
だけにしてみたのですが、ここでエラーになるようです。

sakamoto toshiyuki

unread,
Feb 24, 2011, 1:06:26 AM2/24/11
to android-g...@googlegroups.com, toshi
坂本です。こんにちは。

Context.POWER_SERVICEを使用するには、
<uses-permission android:name="android.permission.DEVICE_POWER"/>
も必要だったかもしれません。

また、スクリーンをOFFにしないだけであれば、
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
という方法もあります。標準のCameraアプリはこちらを使用しているようです。

それでは

2011年2月23日0:31 toshi <funa...@gmail.com>:

Reply all
Reply to author
Forward
0 new messages