如何以编程方式接受Xiomi和华为手机的权限

时间:2016-03-18 22:24:01

标签: android testing permissions automated-tests

我想在安装期间为应用程序分配所有权限。 我知道如果我使用

安装应用程序
adb install -g <apk_name>

但这适用于API 23及更高版本。

我的问题是所有Xiomi and Huawei phones below API 23,当您尝试访问相机,录制音频等时,它们也会显示弹出窗口。这些是系统弹出窗口。

现在,如果手机在API 23及更高版本上,我知道我可以使用requestPermissions()但是如何以编程方式接受来自这类弹出窗口的权限。

  

注意 - 这是我的自动化测试所必需的。

1 个答案:

答案 0 :(得分:-1)

首先,我相信您可以在API中实现ContextCompat#requestPermissions()&lt; 23使用

dependencies {
...
compile 'com.android.support:appcompat-v7:23.1.1'
...
}

无论如何,要接受在活动中实现回调方法所需的权限。

@Override
public void onRequestPermissionsResult(int requestCode,
        String permissions[], int[] grantResults) {
    switch (requestCode) {
        case MY_PERMISSIONS_REQUEST_READ_CONTACTS: {
            // If request is cancelled, the result arrays are empty.
            if (grantResults.length > 0
                && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

                // permission was granted, yay! Do the
                // contacts-related task you need to do.

            } else {

                // permission denied, boo! Disable the
                // functionality that depends on this permission.
            }
            return;
        }

        // other 'case' lines to check for other
        // permissions this app might request
    }
}

http://developer.android.com/training/permissions/requesting.html