【装包测试】Android应用权限授权小技巧
一、前言
二、pm授权与取消授权指令详解
/system/bin
目录下。 grant
(授予应用权限许可)与 revoke
(撤销应用权限),在 Airtest
环境的具体使用如下: #授予应用权限许可。必需android6.0(API级别23)以上的设备
shell(pm grant <packageName> <permission>)
#撤销应用权限。必需android6.0(API级别23)以上的设备
shell(pm revoke <packageName> <permission>)
指令说明 | 指令 |
---|---|
应用的电话权限 | android.permission.READ_PHONE_STATE |
应用存储的读取权限 | android.permission.READ_EXTERNAL_STORAGE |
应用存储的写入权限 | android.permission.WRITE_EXTERNAL_STORAGE |
应用打开位置权限 | android.permission.ACCESS_COARSE_LOCATION |
应用打开摄像头权限 | android.permission.CAMERA |
应用访问麦克风 | android.permission.RECORD_AUDIO |
应用读取联系人数据 | android.permission.READ_CONTACTS |
应用读取短信数据 | android.permission.READ_SMS |
应用读取设备的日历表 | android.permission.READ_CALENDAR |
应用写入设备的日历表 | android.permission.WRITE_CALENDAR |
#允许应用的电话权限
shell("pm grant com.sina.weibo android.permission.READ_PHONE_STATE")
#撤销应用的电话权限
shell("pm revoke com.sina.weibo android.permission.READ_PHONE_STATE")
#允许应用存储的读写权限
shell("pm grant com.sina.weibo android.permission.READ_EXTERNAL_STORAGE")
shell("pm grant com.sina.weibo android.permission.WRITE_EXTERNAL_STORAGE")
#撤销应用存储的读写权限
shell("pm revoke com.sina.weibo android.permission.READ_EXTERNAL_STORAGE")
shell("pm revoke com.sina.weibo android.permission.WRITE_EXTERNAL_STORAGE")
三、使用案例
# -*- encoding=utf8 -*-
__author__ = "Airtest"
from airtest.core.api import *
auto_setup(__file__)
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
# 定义授予权限的函数
def grant_permit():
#先行允许应用的电话权限
shell("pm grant com.sina.weibo android.permission.READ_PHONE_STATE")
print("已允许应用的电话权限")
#允许应用存储的读写权限
shell("pm grant com.sina.weibo android.permission.READ_EXTERNAL_STORAGE")
shell("pm grant com.sina.weibo android.permission.WRITE_EXTERNAL_STORAGE")
print("已允许应用存储的读写权限")
# 定义撤销权限的函数
def revoke_permit():
#撤销应用的电话权限
shell("pm revoke com.sina.weibo android.permission.READ_PHONE_STATE")
print("已撤销应用的电话权限")
#撤销应用存储的读写权限
shell("pm revoke com.sina.weibo android.permission.READ_EXTERNAL_STORAGE")
shell("pm revoke com.sina.weibo android.permission.WRITE_EXTERNAL_STORAGE")
print("已撤销应用存储的读写权限")
if __name__ == "__main__":
#安装微博app
install("./com.sina.weibo.apk")
#点击确认安装按钮
poco("com.sonymobile.cta:id/btn_ok").wait_for_appearance()
poco(text="确定").click()
#先允许微博的所需权限
grant_permit()
#点击打开微博App
start_app("com.sina.weibo")
#点击开屏的用户隐私确认
poco(text="我知道了").click()
# 检查微博是否成功打开
if exists(Template(r"tpl1725350455008.png", record_pos=(0.001, -0.803), resolution=(1080, 2520))):
print("已成功打开微博")
#关闭微博
stop_app("com.sina.weibo")
#移除微博的所需权限
revoke_permit()
#点击打开微博App
start_app("com.sina.weibo")
sleep(3.0)
# 检查权限申请弹窗是否出现
if exists(Template(r"tpl1725350984228.png", record_pos=(0.001, -0.061), resolution=(1080, 2520))):
print("权限申请弹窗正常跳出")
四、小结
本文分享自微信公众号 - AirtestProject(AirtestProject)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
DBA 的 AI 助手 | MySQL 清理 undo log 居然用了 10 个小时?
社区王牌专栏《一问一实验:AI 版》全新改版归来,得到了新老读者们的关注。其中不乏对 ChatDBA 感兴趣的读者前来咨询,表达了想试用体验 ChatDBA 的意愿,对此我们表示感谢 🤟。 目前,ChatDBA 还在最后的准备阶段,会尽快跟大家见面。想预约试用的朋友,可以扫码文末的 预约试用 二维码或点击 原文链接。我们正在对 DBA 群体试用大模型的情况进行调研,这对我们打磨 ChatDBA 的使用体验非常重要。 下面让我们正式进入《一问一实验:AI 版》的第 57 期。 问题 undo log 长时间处于清理状态导致备份失败。 问题现象:有客户反映有 3 套 MGR 环境全备失败,MySQL 版本为 8.0.18 ,Xtrabackup 版本为 8.0.9 。报错信息如下: xtrabackup: Generating a list of tablespaces Directories to scan '.;./;.' Scanning './' Completed space ID check of 2 files. Allocated tablespace ID ...
- 下一篇
用 SQL 写的俄罗斯方块游戏「GitHub 热点速览」
在开始介绍上周热门开源项目之前,要插播一条开源新闻:Nginx 已正式迁移至 GitHub。 近日,Nginx 官方宣布将 Nginx 开源项目,从 Mercurial 迁移至 GitHub 代码托管平台,并开始接受 PR 形式的贡献、Issues 问题反馈和功能请求等,GitHub 上的 Nginx 项目终于"活"了! GitHub 地址→github.com/nginx/nginx 说回上周的热门开源项目,有一个项目着实让我开眼了:用纯 SQL 编写的俄罗斯方块游戏 Tetris-SQL,游戏的逻辑和画面都是由 SQL 实现,核心 SQL 文件仅 500 多行代码,项目内包含了实现细节和讲解。震惊之余,来点实用的开发工具压压惊,全平台通用的换源工具 chsrc、轻量级的 IP 扫描工具 WatchYourLAN 和跨发行版的 Linux 工具箱 linutil,它们都是能解决某个痛点的开发工具。 当然,怎么能少了有趣、好玩的开源项目呢?开源的字修仙游戏 vue-XiuXianGame 和空中交通管制在线模拟器 openscope,它们不仅有趣,更是点开就能玩。 本文目录 热门开源项...
相关文章
文章评论
共有0条评论来说两句吧...