<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
大家都知道無線投屏或者有線投屏的功能,但應該很少有人知道安卓中的異顯功能? 這篇文章是為了讓大家對異顯有初步的認識,以及怎麼實現簡單的異顯。
無線投屏或者有線投屏的時候,安卓裝置的畫面會原封不動的投影在顯示器上,這就是投屏。
而異顯,則是安卓裝置和顯示器的畫面分開顯示,比如安卓裝置上在聊天,顯示器上還可以在播放電影,是不是和多視窗的感覺有點像。
當然,安卓裝置需要支援VGA/HDMI顯示。 哪些裝置支援呢,我在某商家店面上發現只有部分裝置是支援的。
另外有部分安卓裝置同時支援投屏和辦公兩種模式,有部分安卓設定則只支援投屏。 某品牌手機的辦公模式
在實現投屏功能之前,應該去允許操作投屏的許可權,它的許可權實際上是顯示系統視窗的許可權,在組態檔中
<!-- 顯示系統視窗許可權 --> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> <!-- 在 螢幕最頂部顯示--> <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
if (Build.VERSION.SDK_INT >= 23) { if (!Settings.canDrawOverlays(MainActivity.this)) { Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName())); startActivityForResult(intent, 10); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 10) { if (Build.VERSION.SDK_INT >= 23) { if (!Settings.canDrawOverlays(this)) { // SYSTEM_ALERT_WINDOW permission not granted... Toast.makeText(MainActivity.this, "not granted", Toast.LENGTH_SHORT); } } } super.onActivityResult(requestCode, resultCode, data); }
為什麼需要這些許可權,因為副屏的主要類Presentation是繼承與Dialog的
public class DifferentDisplay extends Presentation { public DifferentDisplay(Context outerContext, Display display) { super(outerContext, display); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.diffrentdisplay); } public void setText(String text) { TextView textView = findViewById(R.id.tv_test); textView.setText(text); } }
介面佈局
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/purple_200" tools:context=".MainActivity"> <TextView android:id="@+id/tv_test" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="異顯" android:textSize="50sp" /> </RelativeLayout>
先放程式碼再來說明
public class MainActivity extends AppCompatActivity { final String TAG = "MainActivity"; DifferentDisplay mPresentation; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 雙屏顯示 DisplayManager mDisplayManager; //螢幕管理類 Display[] displays;// 螢幕陣列 mDisplayManager = (DisplayManager) MainActivity.this.getSystemService(Context.DISPLAY_SERVICE); displays = mDisplayManager.getDisplays(); // 得到顯示器陣列 if (displays.length == 0) { Log.d(TAG, "無顯示屏"); return; } mPresentation = new DifferentDisplay(getApplicationContext(), displays[1]);//displays[1]是副屏 // 8.0 需要替換為 TYPE_APPLICATION_OVERLAY mPresentation.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); mPresentation.show(); } int index = 1; public void Test(View view) { if (mPresentation != null) mPresentation.setText(++index + "點選"); } }
Display[] displays
是獲取的螢幕的個數,包括安卓裝置自身的螢幕。 比如new DifferentDisplay(getApplicationContext(), displays[1])
操作的就是第一塊副屏。
另外有個許可權問題
mPresentation.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
上訴程式碼在6.0及以上是可以的(未驗證),但在8.0以上需要這樣使用
8.0以上需要將:WindowManager.LayoutParams.TYPE_SYSTEM_ALERT
替換為:WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY
到此這篇關於Android如何實現裝置的異顯功能的文章就介紹到這了,更多相關Android實現裝置異顯功能內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45