Re: [android-group-japan: 22062] 近接センサを使った画面ON/OFFの実装方法

1,209 views
Skip to first unread message

しかじろう

unread,
Feb 20, 2013, 6:05:05 AM2/20/13
to android-group-japan
しかだよ。
要求通りの動作をするかわかりませんが、ココらへんで実装できると思いまっす。


2013/2/19 jey <j_tsu...@hotmail.co.jp>
通話中に用いられている近接センサの画面ON/OFFをアプリ内で実装したいのですが、どうすればいいでしょうか?
近接センサの情報取得は分かりますが、そこに画面ON/OFFの実装方法が分かりません。
 
やりたいことは通話中と同様に、
近づいたら(近接センサが反応したら)画面OFFにて誤動作防止。
離れたら、画面ONして、スクリーンタッチできるようになる。
ということを実現したいです。
 
ご教授お願いします。
 

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



--
/**
 * @name : しかじろう【渡辺 慎二郎】
 * @twitter : http://twitter.com/shikajiro
 * @mail : shik...@gmail.com
 * @profile http://www.google.com/profiles/shikajiro
 */

jey

unread,
Feb 21, 2013, 9:18:16 AM2/21/13
to android-g...@googlegroups.com
shikajiroさん
アドバイスありがとうございます。
 
試してみたのですが、うまくいきませんでした。。
下記、ソースの抜粋です。
近接センサは反応してますが、画面に変化はありませんでした。permissionはWAKE_LOCKを追加してます。
 
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
 
 @Override
 protected void onResume() {
     super.onResume();
     List<Sensor> sensors = manager.getSensorList(Sensor.TYPE_PROXIMITY);
     if(sensors.size() > 0) {
      Sensor s = sensors.get(0);
      manager.registerListener(this, s, SensorManager.SENSOR_DELAY_UI);
      
     }
 
 @Override
 public void onSensorChanged(SensorEvent event) {
   if(event.values[0]<5){ //近づいたら画面OFF
        wl.acquire(); 
   }
  else{    //離れたら画面ON]
      wl.release();
  }
 
また、screenBrightness=0.0fにする方法も試しましたが、
画面OFFにできるものの、再度近接センサが反応しても画面ONにはなりませんでした。
 
ほかに解決方法はないでしょうか??
 

MORIHIRO

unread,
Feb 21, 2013, 10:32:31 AM2/21/13
to android-g...@googlegroups.com
通話アプリのような標準アプリの動作について知りたいのであれば、
公開されているソースコードを確認してみるのが一番だと思いますよ。

 http://tools.oesf.biz/android-4.0.3_r1.0/xref/packages/apps/Phone/src/com/android/phone/PhoneApp.java
 → おそらく PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK のあたり?

2013年2月21日木曜日 23時18分16秒 UTC+9 jey:

jey

unread,
Feb 23, 2013, 9:07:18 AM2/23/13
to android-g...@googlegroups.com
MORIHIROさん
 
アドバイスありがとうございます!
 PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK でできました。
APIリファレンスに載ってないんですね。。。
 
ありがとうございました。
 
 
Reply all
Reply to author
Forward
0 new messages