Android久しぶりに開発関連のメモ。必要があって、自作アプリの内で、画面のON→OFFおよびOFF→ONを自動的に実行したいと思って調べました。後者のOFF→ONについては、http://into.cocolog-nifty.com/pulog/2012/01/android059-7570.htmlこんな感じで、WakeLockを使ってやれば実行できます。PowerManager.ACQUIRE_CAUSES_WAKEUP,getApplication().getPackageName());wakeLock.acquire();wakeLock.release();}}こんな感じで、SCREEN_OFFを受け取るbroadcastを設定した場所で処理してやることで、画面が切られた(物理スイッチが押下された)後で、すぐに画面を起動させる、といった、単純に自動スリープをオフにするだけとは違った形で、常時画面をONにした状態を保つことができます。この部分までは知っていたので、これと同じような要領で、ON→OFFについてもできるのだろう、と思って調べたところ、これが中々難物であることが分かりました。クラスに、wakeUpというメソッドが用意されています。これを使えばいいんだ、と簡単に考えていたところ、Ecripseでこのコードを書いてしまうと、DEVICE_POWERパーミッションが必要だ、と言われます。そこで、このパーミッションを追加すると、今度は、「このパーミッションはsystemアプリにしか許可されていない」といった主旨の文言が表示されてエラーとなります。調べたところhttp://stackoverflow.com/questions/15556508/android-how-to-use-powermanager-wakeuphttp://www.techdoctranslator.com/android/guide/device-adminhttp://d.hatena.ne.jp/pochi-p/20120617http://subtech.g.hatena.ne.jp/cho45/20100205/1265367008Manifestファイル内で通常設定するuses-permissionの他に、permissionを設定し、アプリのprotectionLevelをsignatureOrSystemまたはsystemにしなければいけないようです。http://developer.android.com/intl/ja/reference/android/Manifest.permission.htmlただし、これらの設定はその名前から想像できる通り、systemアプリにしか許可されていないもの。いうことで、通常のやり方では、Googleやスマートフォンメーカーなどのアプリ以外のサードパーティーアプリでは、画面ON→OFFという機能は実装できない。いうことが分かりました。ところが、色々調べて見ると、世の中には以外とこの手のアプリが流通してます。http://www.android-mutant.net/article/366416352.htmlhttps://play.google.com/store/apps/details?id=jp.co.kixx.tool.offwidget&hl=jahttp://octoba.net/archives/20130908-android-app-gravity-screen-on-off-214242.htmlこの手のアプリ、ほとんどが「デバイス管理者権限」を設定できる必要があり、中には、そういったことにかこつけて、こんな危険そうなアプリもある様で...http://secroid.jp/d/0/7/d/com.thanhnv.screenoff.htmlこの手のアプリをインストールする際は、ちょっと慎重になったほうがいいのかも。私は他の解決策を探ることにします...では。近況報告など前回の投稿から1か月以上が経過しました。