日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

android tv 悬浮窗口,android TV的自定义关机弹出框

發(fā)布時(shí)間:2025/5/22 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android tv 悬浮窗口,android TV的自定义关机弹出框 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

關(guān)機(jī)的時(shí)候會(huì)走power的相關(guān)部分

首先我們監(jiān)聽(tīng)power鍵的文件是在frameworks\base\services\core\java\com\android\server\policy\PhoneWindowManager.java

監(jiān)聽(tīng)的函數(shù)是interceptKeyBeforeQueueing()

這個(gè)也是監(jiān)聽(tīng)我們keyevent其他按鍵攔截的位置。

我們知道按鍵按下的時(shí)候有down事件和up事件

final boolean down = event.getAction() == KeyEvent.ACTION_DOWN;

我們?cè)谏厦嫦嚷暶饕粋€(gè)down的事件,避免我們需要的功能執(zhí)行兩次。

首先我們使用private int powernum = 0;來(lái)記錄次數(shù),下面給出解釋。

if((keyCode==KeyEvent.KEYCODE_POWER)&&(down==true)){

powernum = powernum + 1;

Message message=new Message();

if(SystemProperties.getBoolean("mstar.powertwo.enable",false)){

message.what = powernum;

} else {

message.what = 1;

}

powerhandler.sendMessage(message);

return 0;

}

if(SystemProperties.getBoolean("mstar.powertwo.enable",false)){

if(ShutdownThread.powercencle()){

if((keyCode != KeyEvent.KEYCODE_POWER) && (down == true)){

ShutdownThread.powerdialog();

powernum = 0;

}

}

}

我這里有兩種不同樣式的關(guān)機(jī)的彈出框。

第一種是普通的dialog的引用,需要按確定鍵來(lái)關(guān)機(jī)

第二種是兩次power鍵進(jìn)行關(guān)機(jī),按任意鍵取消dialog

按一下power我們對(duì)powernum進(jìn)行一次記錄。

SystemProperties.getBoolean("mstar.powertwo.enable",false))類(lèi)似于一個(gè)屬性

當(dāng)它為真的時(shí)候,就是兩次power鍵關(guān)機(jī)。否的時(shí)候就是按一下power

為了方便發(fā)送按兩次關(guān)機(jī)走不同的函數(shù),我通過(guò)發(fā)送message的值來(lái)進(jìn)行區(qū)分。

private Handler powerhandler = new Handler(){

public void handleMessage(Message msg) {

switch (msg.what) {

case 1:

mWindowManagerFuncs.shutdown(true);

powernum = 1;

break;

case 2:

mWindowManagerFuncs.shutdown(false);

break;

default:

break;

}

};

};

這里發(fā)送message.what=1;的時(shí)候會(huì)執(zhí)行mWindowManagerFuncs.shutdown(true);

當(dāng)發(fā)送message.what=2; ?會(huì)執(zhí)行mWindowManagerFuncs.shutdown(false);

這里shutdown()的函數(shù)就是我們的關(guān)機(jī)彈出框。

messgae.what=1的時(shí)候,我們顯示這個(gè)dialog。

dialog在我們的ShutdownThread.java類(lèi)里面

shutdown()的函數(shù)的文件位置:

frameworks\base\services\core\java\com\android\server\power\ShutdownThread.java

下面的截圖是跟著上面的代碼,這里順便把framework層的獲取string的int值也將一下。

context.getResources().getInteger()

使用這個(gè)可以獲取framework的string。因?yàn)槲野磧纱侮P(guān)機(jī)的時(shí)候問(wèn)題提示的信息不同,所以需要在framework添加新的string文字。

我這里添加的兩個(gè)類(lèi)在

frameworks\base\core\res\res\values\symbols.xml

frameworks\base\core\res\res\values\strings.xml

因?yàn)椴恍枰砑觟d所以只需要添加這兩個(gè)地方,可以參考里面其他string的寫(xiě)法。

因?yàn)槲疫€不會(huì)使用代碼的應(yīng)用,┭┮﹏┭┮ ?只能這樣子去截圖,讀者辛苦一下吧。

這個(gè)部分的代碼可以在源碼中找到,源碼是最好的老師

這個(gè)部分是區(qū)分dialog的地方,其實(shí)還有更好的解決方法的,我這里使用的最快的方法。

這里有個(gè)重點(diǎn)就是把dialog設(shè)置成全局dialog,不然會(huì)報(bào)錯(cuò)

sConfirmDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);

這個(gè)上面這個(gè)是必須要的,不要就會(huì)報(bào)錯(cuò)。

之后我寫(xiě)了連個(gè)回調(diào)方法來(lái)進(jìn)行區(qū)分,如果是需要按兩次power進(jìn)行關(guān)機(jī)的時(shí)候,當(dāng)dialog是顯示的時(shí)候powercencle=true ? 默認(rèn)為false。然后在PhoneWindowManager.java那邊就行判斷,然后在調(diào)用powerdialog的這個(gè)方法來(lái)把dialog進(jìn)行取消。

這里我還對(duì)dialog進(jìn)行了一個(gè)優(yōu)化,把dialog的高為默認(rèn)的,但是它的寬,我自己得到了屏幕的寬度然后在除以的2。這個(gè)部分的代碼可以如果不需要可以去刪除。

總結(jié):power的彈出框

相當(dāng)于發(fā)送一個(gè)消息來(lái)進(jìn)行顯示dialog,然后在按確定的時(shí)候走關(guān)機(jī)的函數(shù)。

兩次power鍵關(guān)機(jī),相當(dāng)于記錄power鍵的次數(shù)。當(dāng)為2的時(shí)候就走關(guān)機(jī)的流程。

總結(jié)

以上是生活随笔為你收集整理的android tv 悬浮窗口,android TV的自定义关机弹出框的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: aa黄色大片| 91亚洲精品一区二区乱码 | 国产主播99 | 好爽…又高潮了毛片免费看 | 6080一级片 | 51精品| 国产午夜影院 | 欧美日视频| 亚洲无av在线中文字幕 | 亚洲美女在线视频 | 中文字幕在线免费 | 国产精品天美传媒 | 日批视屏 | 国产亚洲自拍一区 | 女女同性女同一区二区三区按摩 | 免费观看黄网站 | 色多多视频网站 | 在线观看黄色 | 欧美视频亚洲视频 | 日韩精品人妻一区 | 伊伊成人网 | wwwxx欧美 | 欧美三级欧美一级 | 国产99热 | 亚洲一区二区三区免费视频 | 久久久久亚洲AV成人无在 | 欧美sm凌虐视频网站 | 精品在线免费视频 | 91热久久 | 日本高清视频免费观看 | 天天爽天天搞 | 精品国产黄色片 | 一级淫片免费 | 老妇裸体性激交老太视频 | 狠狠操女人 | 午夜电影天堂 | 狠狠干狠狠艹 | 天使色吧| 成人黄色大全 | 封神榜二在线高清免费观看 | 日韩女优中文字幕 | 91精品国产色综合久久不卡98口 | 久久久久精 | 日韩国产欧美一区二区三区 | 午夜看片在线 | 另类尿喷潮videofree | 夜夜夜网站 | 亚洲一区二区三区高清 | 日本一区二区视频在线 | 黄免费在线观看 | 性欧美大战久久久久久久免费观看 | 国产区精品 | 一区二区三区免费网站 | 国产又黄又猛的视频 | 我和我的太阳泰剧在线观看泰剧 | 国产一区二区三区四区三区四 | 香蕉视频黄色片 | 日韩中文字幕电影 | 亚洲少妇xxx| 在线播放少妇奶水过盛 | 伊人影院在线播放 | 射进来av影视网 | 999热| 一级做a爱片 | 欧美性视频在线播放 | 依依av| av导航网站 | 果冻传媒18禁免费视频 | 久热国产视频 | 欧美一级成人 | 亚洲18在线看污www麻豆 | 亚洲欧美日韩综合一区二区 | 亚洲视频在线一区二区 | 日韩有码在线视频 | 午夜美女网站 | 嫩草影院菊竹影院 | 在线观看日韩视频 | 性歌舞团一区二区三区视频 | 91精品国产aⅴ一区二区 | 乱色欧美 | 亚洲怡红院av | zzjj国产精品一区二区 | 成人快色 | 国产无套在线观看 | 亚洲精品在线网站 | 成人高清在线 | 国产免费成人在线视频 | 一本视频在线 | www伊人 | 9999视频| 视频在线a | 丁香激情小说 | 97人人视频 | 亚洲三级在线视频 | 超碰男人的天堂 | 色站av| 亚洲色图网友自拍 | 亚洲天天影视 | 久久精品aⅴ无码中文字字幕重口 |