導航:首頁 > 編程語言 > 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代碼相關的資料

熱點內容
qq緩存的數據是什麼 瀏覽:348
LED主Kv文件多少兆 瀏覽:856
蘋果edge怎麼刪除下載文件 瀏覽:471
sas邏輯回歸代碼 瀏覽:572
用於keil下的stc器件資料庫 瀏覽:400
新聞網站後台如何操作前台 瀏覽:539
在剪映app中怎麼查看視頻尺寸 瀏覽:9
linux文件成分包括 瀏覽:886
文件轉換免費的軟體 瀏覽:644
linuxwpsxlsx 瀏覽:482
小米手機怎麼上移動網路連接失敗怎麼辦 瀏覽:598
win10系統打開java 瀏覽:479
全日制編程什麼意思 瀏覽:447
筆記本創建區域網怎麼傳文件 瀏覽:871
怎樣查看id密碼 瀏覽:647
贛州極客晨星少兒編程怎麼樣 瀏覽:690
覺醒年代哪個app可以免費觀看 瀏覽:830
如何關閉win10觸摸屏幕 瀏覽:761
蘋果142不能傳文件 瀏覽:128
如何看歷史底部數據 瀏覽:230

友情鏈接