使用许可权限

    一、注册应用程序所需的许可权限

             Android应用程序默认没有任何许可权限。任何用于共享资源和授权访问的(无论是共享数据,如联系人数据库,还是访问底层硬件,如内置摄像头)都必须在AndroidManifest文件内进行显式地注册。这些许可权限将在应用 程序安装时被授予。

             当用户安装应用程序时,他们将会被告知应用程序运行所需的所有许可权限,用户必须同意授予这些权限。另外,应用程序只应该申请它所需要的许可权限。

             在某些时候,许可权限并不是强制性的(也就是说,你也可以在没有获得权限的情况下进行操作)。但是,我们必须慎重地采用这种方式,原因有二:

             (1)运行时用户会被好治应用程序正在进行敏感的操作;

             (2)在更新的SDK版本中,这种许可权限可能会带有强制性。

          二、注册应用程序授予其他应用程序的许可权限

          许可权限可以在以下若干个点被强制验证

           1,当启动一个Activity或Service时;

           2,当访问由内容提供器提供的数据时;

           3,当处在函数调用层时;

           4,当发送和接收Intent广播时。

 

许可权限可以拥有3种主要的保护级别:normal,dangerous,signature……由于被控制器的应用程序互通性,signature保护接允许在任何使用相同的证书签名的应用程序使用其控件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 Appium 进行自动化测试时,可能需要获取应用的权限许可。以下是获取应用权限许可的 Python 代码示例: ``` from appium import webdriver from appium.webdriver.common.mobileby import MobileBy from appium.webdriver.common.touch_action import TouchAction from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By desired_caps = { "platformName": "Android", "platformVersion": "10", "deviceName": "your_device_name", "appPackage": "com.example.app", "appActivity": "com.example.app.MainActivity" } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 等待直到应用启动完成 WebDriverWait(driver, 30).until(EC.presence_of_element_located((MobileBy.ID, "com.example.app:id/button_login"))) # 获取应用权限许可 driver.start_activity("com.android.settings", ".Settings") driver.find_element(By.ID, "com.android.settings:id/search").click() driver.find_element(By.ID, "com.android.settings:id/search_src_text").send_keys("app permissions") driver.find_element(By.XPATH, "//androidx.recyclerview.widget.RecyclerView/android.widget.LinearLayout[1]").click() driver.find_element(By.XPATH, "//android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/androidx.recyclerview.widget.RecyclerView/android.widget.LinearLayout[1]/android.widget.Switch").click() driver.press_keycode(4) driver.press_keycode(4) # 返回应用 driver.start_activity("com.example.app", "com.example.app.MainActivity") ``` 在上面的代码中,首先定义了一个 `desired_caps` 字典,其中包含了连接的设备信息和应用信息。然后使用该字典创建了一个 `webdriver` 对象。在等待应用启动完成后,使用 `start_activity` 方法打开系统设置应用,模拟用户点击进入应用权限页面,打开第一个权限开关,最后返回到测试应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值