Android9?雙屏異顯實(shí)現(xiàn)方式思路
雙屏異顯的三種方式
1、通過(guò)adb命令將app啟動(dòng)在指定的屏幕
adb shell am start -n com.android.demo/com.android.demo.MainActivity --display 1 adb shell am start -n com.android.demo/com.android.demo.MainActivity --user 0 --display 1
參數(shù)--display指定屏幕, display 0,表示第一塊屏幕; display 1,表示第2塊屏幕。
參數(shù)--user可以啟動(dòng)指定的用戶,在多用戶下有效,系統(tǒng)默認(rèn)是--user 0。
2、通過(guò)Presentation
Presentation是一個(gè)特殊的dialog,它的目的是顯示內(nèi)容到第二屏幕。在Presentation創(chuàng)建的時(shí)候關(guān)聯(lián)一個(gè)目標(biāo)設(shè)備,確定Presentation要顯示在哪個(gè)設(shè)備上,根據(jù)這個(gè)設(shè)備的信息來(lái)配置Presentation的context和resources信息。
獲取輔助屏幕有兩種方式:MediaRouter或者DisplayManager
MediaRouter mediaRouter = (MediaRouter) context.getSystemService(Context.MEDIA_ROUTER_SERVICE); MediaRouter.RouteInfo route = mediaRouter.getSelectedRoute();---先獲取RouteInfo,再獲取Display //MediaRouter.RouteInfo route = mediaRouter.getSelectedRoute(ROUTE_TYPE_USER) if(route != null) { Display presentationDisplay = route.getPresentationDisplay(); if (presentationDisplay != null) { Presentation presentation = new MyPresentation(context, presentationDisplay); presentation.show(); } } DisplayManager mDisplayManager = getSystemService(Context.DISPLAY_SERVICE); Display displays = mDisplayManager.getDisplay(1);
3. 通過(guò)startActivity
ActivityOptions options = ActivityOptions.makeBasic(); options.setLaunchDisplayId(1); //這里一直display0是第一塊屏;display1是第二塊屏 Intent secondIntent = new Intent(); ComponentName cn= new ComponentName("com.android.demo","com.android.demo.SecondActivity"); secondIntent .setComponent(cn); //該句很重要,不添加則無(wú)法推送到副屏 secondIntent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK|Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(secondIntent, options.toBundle()); 使用ActivityOptions指定顯示屏幕 為Intent增加標(biāo)志Intent.FLAG_ACTIVITY_MULTIPLE_TASK|Intent.FLAG_ACTIVITY_NEW_TASK
備注:通過(guò)Activity的方式顯示在副屏上會(huì)帶來(lái)一些問(wèn)題
1、SoftInputWindow,Toast只顯示在主屏
當(dāng)在副屏的Activity中調(diào)用上面控件時(shí),控件會(huì)顯示到主屏上
PopupWindow、Dialog可以正常顯示
但是傳入的Context必須是當(dāng)前Activity的
以上問(wèn)題需要修改Framwork適配控件,更多關(guān)于Android9 雙屏異顯的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
學(xué)習(xí)使用Material Design控件(一)
這篇文章主要為大家介紹了學(xué)習(xí)使用Material Design控件的詳細(xì)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07Android 判斷是否能真正上網(wǎng)的實(shí)例詳解
這篇文章主要介紹了Android 判斷是否能真正上網(wǎng)的實(shí)例詳解相關(guān)資料,希望通過(guò)本文大家能夠掌握判斷是否上網(wǎng)的方法,需要的朋友可以參考下2017-10-10利用Kotlin的方式如何處理網(wǎng)絡(luò)異常詳解
這篇文章主要 給大家介紹了關(guān)于利用Kotlin的方式如何處理網(wǎng)絡(luò)異常的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07Android開(kāi)發(fā)之HttpClient異步請(qǐng)求數(shù)據(jù)的方法詳解【附demo源碼下載】
這篇文章主要介紹了Android開(kāi)發(fā)之HttpClient異步請(qǐng)求數(shù)據(jù)的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Android HttpClient異步請(qǐng)求數(shù)據(jù)的相關(guān)操作技巧,并附帶完整demo源碼供讀者下載參考,需要的朋友可以參考下2017-11-11Android開(kāi)關(guān)控件Switch的使用案例
今天小編就為大家分享一篇關(guān)于Android開(kāi)關(guān)控件Switch的使用案例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03Android開(kāi)發(fā)實(shí)現(xiàn)的圓角按鈕、文字陰影按鈕效果示例
這篇文章主要介紹了Android開(kāi)發(fā)實(shí)現(xiàn)的圓角按鈕、文字陰影按鈕效果,涉及Android界面布局與屬性設(shè)置相關(guān)操作技巧,需要的朋友可以參考下2019-04-04RecyclerView滑動(dòng)到指定Position的方法
這篇文章主要為大家詳細(xì)介紹了RecyclerView滑動(dòng)到指定Position的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04