導航:首頁 > 編程語言 > androidtv代碼

androidtv代碼

發布時間:2023-09-18 02:59:37

① Android tv版開發代碼中如何取消屏保

1、注冊一個BroadcastReceiver,用於接收ACTION_SCREEN_OFF事件。當接收到這個事件時,打開自定義的屏保畫面。以下代碼為了測試方便,放在MainActivity.java中,也可以根據需要,把代碼放入service中。
registerReceiver(mMasterResetReciever,newIntentFilter(Intent.ACTION_SCREEN_OFF)); BroadcastReceiver mMasterResetReciever=newBroadcastReceiver() { publicvoidonReceive(Context context, Intent intent){ try{ Intent i =newIntent(); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.setClass(context, ScreenSaverActivity.class); context.startActivity(i); }catch(Exception e){ Log.i("Output:", e.toString()); } } };

2、完成這一步時,雖然屏幕關閉時,屏保畫面被顯示,但由於接收的是ACTION_SCREEN_OFF事件,所以屏幕已經變黑了,這個時候就需要強制點亮屏幕。
首先,在AndroidManifest.xml中加上permission 許可權:
<uses-permissionandroid:name="android.permission.WAKE_LOCK"/>

以下代碼在ScreenSaverActivity.onCreate中
PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE); mWakeLock = pm.newWakeLock( PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE,"SimpleTimer");

然後在屏保畫面顯示時,點亮屏幕。在ScreenSaverActivity.onResume中加入
mWakeLock.acquire();

為了能夠在退出屏保時,能夠讓屏幕可以關閉,我們必須釋放WakeLock.故在ScreenSaverActivity.onPause中加入
mWakeLock.acquire();

注意,必須放在onResume中,如放在別的地方。會導致程序無法再次進入屏保,具體原因不詳。由於手頭只有一個手機,不能進行廣泛的測試。
3. 完成第二步後,一般情況下大功告成。按鍵就可以返回程序。但有時候需要點擊屏幕就返回系統。這個時候會發現,無論怎麼樣點擊屏幕,系統都不會有響應,因為此時屏幕已經被鎖定。因此,要實現這個功能,在打開屏保時,需要關鍵屏幕的鎖定功能。
首先,在AndroidManifest.xml中加上permission 許可權:
<uses-permissionandroid:name="android.permission.DISABLE_KEYGUARD"/>

再次,把以下這段代碼加入合適的地方。只要啟動屏保時能夠被調用到
KeyguardManager mKeyguardManager= (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE); KeyguardLock mKeyguardLock= mKeyguardManager.newKeyguardLock(TAG); mKeyguardLock.disableKeyguard();

當然也可以通過以下代碼開啟屏幕鎖定功能。

② 做Android TV開發,需要用到一個功能,在界面上按 上,右,右三個鍵,開啟大招(啟動另一個a

重新onKeyDown方法。

if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER||keyCode == KeyEvent.KEYCODE_ENTER) {

攔截中間鍵按下

}

keyCode == KeyEvent.KEYCODE_DPAD_UP

攔截上鍵按下

keyCode == KeyEvent.KEYCODE_DPAD_DOWN

攔截下鍵按下

keyCode == KeyEvent.KEYCODE_DPAD_LEFT

攔截左鍵按下

keyCode == KeyEvent.KEYCODE_DPAD_RIGHT

攔截右鍵按下

keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0

攔截返回鍵按下

當按下 上下兩鍵時彈出一個popwindow來展示選集,這時彈出來的popwindwo沒有焦點,所以在創建popwindow時就要給它設置獲得焦 點 mSelectionsWindow.setFocusable(true);這樣popwindow里的不管listview還是gridview都能用遙控器上下左右鍵控制了。

可是這時返回鍵失效了,不能退出了,因為焦點都在popwindow上了,給popwindow設置setBackgroundDrawable這樣點擊返回鍵時popwindow就會消失掉。

如果想讓popwindow過個幾秒鍾自己消失,還要重新onKeyUp 撲捉按鍵抬起,在按鍵抬起時給handler發消息就能實現了。

③ android如何在代碼里設置布局

//定義一個線性布局
LindearLayouttp=newLindearLayout(this);
//定義一個布局參數類(用於定義Button在線性布局中的參數)
LayoutParamsltp=newLayoutParams(LayoutParams.WARP_CONTENT,LayoutParams.WARP_CONTENT);
Buttonlbt=newButton(this);
tp.addView(lbt,ltp);//將內Button加入到線性布局中。

//但是容不推薦代碼里實現,因為android是MVC開發模式,數據操作,UI,代碼等實現都是分開寫的,這樣寫的好處你多編點代碼就會體會到了。雖然靠純代碼甚至是在一個activity中都可能完成一個app的編寫,但是這樣就完全沒了可維護性了

閱讀全文

與androidtv代碼相關的資料

熱點內容
電信app有哪些可以用寬頻登錄的 瀏覽:845
羽博數據線和羅馬仕哪個好 瀏覽:425
升級包能用手機解壓嗎 瀏覽:922
手機瀏覽器用什麼編程軟體 瀏覽:351
wordpress添加小工具 瀏覽:566
indesign剪刀工具 瀏覽:956
圖片上的文件怎麼復制出來怎麼辦啊 瀏覽:264
網路綜藝節目如何破局前行 瀏覽:297
做好游戲編程如何生成二維碼 瀏覽:684
百店聯盟最新版本 瀏覽:933
word2007背景文字 瀏覽:535
mvc反序列化json字元串 瀏覽:373
如何一個人建網站 瀏覽:979
19216801路由器密碼 瀏覽:151
win10游戲模式卡 瀏覽:777
macwifi熱點密碼 瀏覽:883
linux下圖形界面編程 瀏覽:268
linux下如何擴容 瀏覽:807
電信貓的密碼怎麼修改wifi密碼 瀏覽:999
哪個網站可以買到魚竿 瀏覽:49

友情鏈接