2012年10月14日日曜日

Androidで設定を参照, 操作するあれこれ -Wi-fiの小ネタ編-

DeveloperのSettings.Systemのあたりを漁っていたら見つけたので


Wi-fiのスリープ設定

正直こんなことも無ければ知らなかったであろう機能.
簡単に言ってしまえば「本体がスリープしたときWi-fiもスリープする?」という設定ができる機能が本体の設定の中にあったわけで…


一生懸命画面のOffのIntentとってなんとかしようとか考えてたのは一体…orz


ちなみに設定までの行き方は
「Wi-fi設定」でメニューを開き「詳細設定」へ…

メニューて…('A`)

とまぁなかなかエキセントリック遠い所に設定があるのでボタン一発で書き換えてやろう, と考えた次第.


とりあえずコード.まずは設定の取得から.


android.provider.Settings.System.getInt(contentresolver,android.provider.Settings.System.WIFI_SLEEP_POLICY,-1);

長い…
画面の設定編でもやった通り,

import android.provider.Settings.System;
しておくと楽かと
parmissionも WRITE_SETTINGS だけでOK(なはず).
内容もいたって簡単.WIFI_SLEEP_POLICYの今の設定をintで返すだけ.
設定は3種類.


0 = WIFI_SLEEP_POLICY_DEFAULT : 画面のスリープと一緒にスリープする
2 = WIFI_SLEEP_POLICY_NEVER : スリープしない
1 = WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED : 電源につながっていればスリープしない

の3つ.

設定の書き換えも
android.provider.Settings.System.putInt(contentresolver,android.provider.Settings.System.WIFI_SLEEP_POLICY,values)

のvaluesに0から2の好きな値を入れてやればOK.
boolean型が返ってくるので, ifで囲って書き込み成功/失敗をとってやればより安全にできるかと.



…parmissionあってるかな…(・ω・`)

0 件のコメント:

コメントを投稿

AWS CDKで立てたEC2インスタンスのTimeZoneとかいじりたかった話

EC2を立てることはできたけど、立てたインスタンスは UTCのままだし設定ファイルとかいちいちscpしてくるのはダルい。 当初UserDataでなんとかしようとしたものの、「書く量がヤバいしメンテしにくい」と悩んでいたところ見かけたのが  AWS::CloudFormation:...