看到居然可以将高德地图窗口化,所以某些车机桌面可以类似 carplay 那样,左侧高德,右侧音乐,并且可以直接在窗口上操作高德
这是怎么样实现的? 似乎也不需要 root ,感觉挺厉害的
1
CyJaySong 2023-06-27 08:22:43 +08:00
画中画
|
2
olbb 2023-06-27 08:41:52 +08:00
就是悬浮窗吧, 跟小窗播放视频一个原理
|
3
gaifanking 2023-06-27 09:31:15 +08:00
|
4
ysy950803 2023-06-27 11:14:07 +08:00
可能是应用自己用悬浮窗口开发的,也可能是系统的小窗模式(国内那些 ROM 基本都有这个功能,不需要应用本身怎么适配),不算什么新鲜东西了。
|
5
ebushicao 2023-06-27 14:37:25 +08:00
很多是车企找高德合作的(付费给高德合作),所以很多车机里的高德更新的很慢。
|
6
ofnh 2023-06-27 17:21:32 +08:00 2
你在 B 站问了我,我在这回你一下
首先,高德是二次修改过的,真假了一些代码以及删除了一些代码,具体的话可以对比一下官方包和修改包的区别 关于如何启动悬浮窗 /画中画,看下面代码 ``` private void showMap() { Intent intent = new Intent(); intent.setAction("com.autonavi.plus.showmap"); intent.putExtra("x", 0); intent.putExtra("y", 0); intent.putExtra("w", 0); intent.putExtra("h", 0); sendBroadcast(intent); } private void hideMap() { Intent intent = new Intent(); intent.setAction("com.autonavi.plus.closemap"); sendBroadcast(intent); } ``` 其中你需要替换具体的值 发送具体的广播就可以让高德悬浮起来了(请注意,悬浮窗权限一定要给) 详细效果和下载请看这个文章 [领克 05/领克 01HY3.1 高德地图开启画中画功能] https://www.bilibili.com/video/BV1KM411P7Hu/?share_source=copy_web&vd_source=758d3c51534003ffa4c7c8489ce795cf |
7
ofnh 2023-06-27 17:24:18 +08:00 1
fix:真假->增加
以上代码对某些桌面的高德有效(嘟嘟桌面等) 另外画中画还有一种实现方式,就是反射 android.app.ActivityView ,门槛比较高,需要 root 或者有系统级签名 |
8
think2011 OP @ofnh 没想到大佬也在这
我的车机估计比较特殊,似乎删减了很多权限,甚至悬浮窗功能都要通过 adb 手动启动才行,app 无法主动申请悬浮窗权限 嘟嘟桌面的话也安装了,由于打开不了里面的系统插件功能(文案为开启 android 系统插件),所以也无法使用画中画,奇怪的是我安装了另一款名为 ATV 的桌面,能正常的调用系统插件 目前无法 root (没有 usb 调试权限和任何系统界面可开启,但有无线 adb 调试),所以也无法搞定 carplay ,就想到了自己开发一个 左侧高德,右侧音乐的 app 自用 |
9
wavever 2023-06-28 02:51:23 +08:00 via Android
有可能是 suface reparent 到 Taskview 这种
|
10
ofnh 2023-06-28 08:42:36 +08:00 1
@think2011
权限问题的话,只能是你就自己解决了,车机和手机不一样,车机相对封闭,无法完全像手机一样 你说的 android 系统插件应该是 widget 吧,你可以自己用 AppWidgetHost 去调用具体的组件,但是实际效果并不好 我上面说的嘟嘟桌面,其实是嘟嘟桌面定制版,比如比亚迪定制版之类的,他们的画中画其实就是悬浮窗 |
11
shuianqingfeng 2023-06-28 15:09:38 +08:00
难怪更新慢 现在明白原理了
|
12
think2011 OP @ofnh 还有一个关键的问题忘记问了
android 是可以直接嵌入例如高德的 apk 吗? 如果不行的话,是怎么做到将高德嵌入到的 app ,实现画中画的,还是反编译,或者是官方、第三方的 api ,我搜索了一圈、github 也找了,好像并没有公开的地方可以拿到我能嵌入到我的 app 的高德 我并不是做 android 开发的,如果问题太愚蠢的哈,见谅哈 |
13
ofnh 2023-06-28 17:45:05 +08:00 1
@think2011
无法嵌入 apk 的 画中画实现方式有几种 1 、伪画中画:使用悬浮窗版的高德,配合程序页面进行切换覆盖,可以达到肉眼画中画的效果,这也是门槛最低的方式 2 、系统底层实现:如方易通的 rom ,在底层就已经提供对应的 api 了,可以直接调用 3 、ActivityView:如上所说,门槛比较高,需要 root 或者系统级签名,这种实现方式在网上可以查到对应的代码 4 、修改高德:难度比较大,对高德的修改也比较多 所以综上所述,建议你使用方式 1 ,门槛相对比较低,也符合你的需求 另外......一个.net 路过..... |
14
think2011 OP |