双屏异显小记录
副屏可以通过android开发者 选项 ,模拟出一个副屏!!!
adb命令
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
参数--display指定屏幕, display 0,表示第一块屏幕; display 1,表示第2块屏幕。
参数--user可以启动指定的用户,在多用户下有效,系统默认是--user 0。
Presentation 就是一个特殊的dialog,将内容显示在第二屏幕上
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);
8.0之后通过activity 显示
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);
//该句很重要,不添加则无法推送到副屏
secondIntent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(secondIntent, options.toBundle());
使用ActivityOptions指定显示屏幕
为Intent增加标志Intent.FLAG_ACTIVITY_MULTIPLE_TASK|Intent.FLAG_ACTIVITY_NEW_TASK
指定屏幕Toast
public static void showToast(int displayid , String message) {
DisplayManager displayManager = SettingApplication.getApplication().getSystemService(DisplayManager.class);
Display display = displayManager.getDisplay(displayid);
// 生成指定屏幕 上下文
Context context = getApplicationContext().createDisplayContext(display);
Toast toast = Toast.makeText(context, message, Toast.LENGTH_SHORT);
toast.show();
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!