MediaProjectionManager.createScreenCaptureIntent();
我现在拥有 root 权限,我希望录制屏幕时不要弹出确认授权对话框。
我想知道这个权限的具体名称是什么。
Google 了很久,也木有找到。
1
jnmsn8806 2020-10-23 15:59:48 +08:00
不懂你说的是什么意思。录屏软件需要 root 权限?
|
3
zapper 2020-10-23 16:06:59 +08:00
MediaProjectionManager.createScreenCaptureIntent() 方法说明:
Returns an Intent that must be passed to startActivityForResult() in order to start screen capture. The activity will prompt the user whether to allow screen capture. The result of this activity should be passed to getMediaProjection. 看起来不能取消这个授权,除非改了系统。 |
5
Cielsky 2020-10-23 16:14:06 +08:00
有个想法,可以试试试试自动跳过类软件,一遇到询问自动点击
|
8
jnmsn8806 2020-10-23 16:16:17 +08:00
|
11
zapper 2020-10-23 16:30:12 +08:00
你可以试试执行 shell,用 pm 预先授权
|
13
zapper 2020-10-23 16:46:29 +08:00 1
@youla 查到一个只能授予系统软件的权限"android.permission.MANAGE_MEDIA_PROJECTION"
不知道管不管用 |
14
LLaMA2 2020-10-23 20:17:48 +08:00
哦, 你是自己的程序是把,那就 screencap 命令啊!
|
15
LLaMA2 2020-10-23 20:19:49 +08:00
2|shell@msm8909:/ $ screenrecord --help
Usage: screenrecord [options] <filename> Android screenrecord v1.2. Records the device's display to a .mp4 file. Options: --size WIDTHxHEIGHT Set the video size, e.g. "1280x720". Default is the device's main display resolution (if supported), 1280x720 if not. For best results, use a size supported by the AVC encoder. --bit-rate RATE Set the video bit rate, in bits per second. Value may be specified as bits or megabits, e.g. '4000000' is equivalent to '4M'. Default 4Mbps. --bugreport Add additional information, such as a timestamp overlay, that is helpful in videos captured to illustrate bugs. --time-limit TIME Set the maximum recording time, in seconds. Default / maximum is 180. --verbose Display interesting information on stdout. --help Show this message. Recording continues until Ctrl-C is hit or the time limit is reached |
17
thetbw 2020-10-23 20:26:59 +08:00 via Android
不用这个 api 试试,以前安卓还没这个 api 的时候,有些 app 就可以录屏了,不过必须 root,你可以搜一下,类似安卓 4.4 是怎么实现录屏的。还有个软件叫 scrcpy,开源的,利用 adb 投屏的,你可以看看它用了哪些接口
|
18
youla OP @thetbw 因为公司负责人以为做这个很难,请别人做的,所以必须要用别人的 jar 包,不然公司会觉得亏钱了。
|
19
youla OP @thetbw 我还没到公司之前他们就在做,而且都是这个功能,我接手的时候真的是一言难尽,现在其实都还很多 bug,有一部分还是我利用 root 解决的。
|
20
mxalbert1996 2020-10-24 10:27:37 +08:00 via Android
这种问题一般去查系统源代码比较快
|
21
mxalbert1996 2020-10-24 10:31:21 +08:00 via Android
另外你有 root 权限不代表你能调用系统 API 。调用系统 API 需要你是系统应用(安装在系统分区或者与系统签名一致)。
|
22
systemcall 2020-10-24 13:35:05 +08:00 via Android
scrcpy 感觉画质不太好,不知道为什么
adb 可以直接截屏 |
23
Jabin 2020-10-25 14:09:40 +08:00
*MediaProjectionManager.createScreenCaptureIntent();* 此 API 如果不是自己系统或者没有 root,弹框确认是必须的。不过正常录屏出现这个提示也无可厚非。
|
24
LLaMA2 2020-10-25 16:09:50 +08:00
|
25
Flywith24 2020-10-27 13:47:19 +08:00
那个授权界面是个 Activity,而且申请录屏是通过 startActivityForResult 启动的,所以即使更改系统源码,也只是在那个授权界面直接返回 Result.OK 。
因此如果是固定机型的话可以使用辅助功能模拟点击,用 id 查找到确认按钮,执行 performClick |