[問題] 請問service是否能判斷手機方向?

看板AndroidDev作者 (危險曲線= =+)時間11年前 (2014/09/23 13:24), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/1
大家好~ 想請問service是否能偵測手機目前的orientation呢?(像是portrait或是landscape?) 因為小弟目前的程式架構大概像這樣: 在activity開啟service --> startService --> 用WindowManager在螢幕上加一個 ImageView並且setOnTouchListener在這個ImageView上 --> touch之後會開啟另一個activity 實際測試的時候好像都沒什麼問題 不過開啟一些會強制使畫面變成橫向的遊戲app之後... 就會發現這個ImageView被放到很奇怪的地方 例如原本在portrait是在左上角 轉成landscape之後會跑到左上角有點偏下的位置 關閉app之後就又回到原本位置 google一下好像沒發現解法... 我自己是想說在service開啟之後另外開一個Thread,用重力sensor的變化來判斷 但是這樣感覺有時候會誤判而且有個thread一直開著sensor好像也很耗電吧..? 想請問各位大大是不是有遇過類似情況或有更好的解法? 謝謝大家!! 在extends Service的class的onStartCommand裡面設置ImageView位置的code如下: SharedPreferences settings=this.getSharedPreferences("PARAMETER_SETTING", MODE_PRIVATE); WindowManager.LayoutParams mParams=new WindowManager.LayoutParams(); mParams.type=WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; mParams.alpha=settings.getInt("AlphaValue", 30)/100.0f; mParams.x=settings.getInt("XValue", 0); mParams.y=settings.getInt("YValue", 0); mParams.width=70;//WindowManager.LayoutParams.WRAP_CONTENT; mParams.height=70;//WindowManager.LayoutParams.WRAP_CONTENT; mParams.format=PixelFormat.RGBA_8888;//transparent background mParams.gravity=Gravity.LEFT|Gravity.TOP; mParams.flags=WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; mWm.addView(floatingImg, mParams); -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.227.47.207 ※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1411449843.A.D7E.html

09/23 16:39, , 1F
09/23 16:39, 1F

09/23 23:11, , 2F
謝謝大大~
09/23 23:11, 2F
文章代碼(AID): #1K8GFpr- (AndroidDev)