android - 在 robotium 上测试 wifi 时出现安全异常

标签 android robotium

我目前正在使用 Robotium 进行 android 测试,当我在 Android 2.3 模拟器中执行以下测试用例时出现错误 “java.lang.SecurityException:WifiService: 用户 10038 和当前进程都没有 android.permission.CHANGE_WIFI_STATE。”。

测试代码:

public void testScheduledPayments()
    {
        solo.clickOnButton(0);
        solo.enterText(0, "demo");
        solo.enterText(1,"password");
        solo.clickOnButton("Log In");
        WifiManager wifiMan = (WifiManager)   solo.getCurrentActivity().getSystemService(Context.WIFI_SERVICE);
        wifiMan.setWifiEnabled(false);
        solo.clickOnText("Payments");
        solo.clickInList(2);
        solo.waitForText("Loading paymnets");
        solo.clickInList(0);
        solo.clickOnMenuItem("Logout");
        solo.clickOnButton("Logout");
        solo.finishOpenedActivities();
    }

在我的 list 文件中:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.tesaptra"
    android:versionCode="1"
    android:versionName="1.0">
        <uses-sdk android:minSdkVersion="10" />


    <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.info.native" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <uses-library android:name="android.test.runner" />

    </application>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>

</manifest>

这是我的猫日志文件

java.lang.SecurityException: WifiService: Neither user 10038 nor current process has android.permission.CHANGE_WIFI_STATE.
at android.os.Parcel.readException(Parcel.java:1322)
at android.os.Parcel.readException(Parcel.java:1276)
at android.net.wifi.IWifiManager$Stub$Proxy.setWifiEnabled(IWifiManager.java:614)
at android.net.wifi.WifiManager.setWifiEnabled(WifiManager.java:713)
at com.testaptra.Payments.testScheduledPaymnets(Payments.java:113)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:204)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:194)
at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:186)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1448)

我已将所有<​​strong>权限添加到 manifest.xml 但没有成功。如果您熟悉以下问题,能否请您帮助我?

提前致谢

最佳答案

必须在目标应用程序中设置权限。测试应用程序中的权限被完全忽略。这意味着仪器 apk 的权限永远不会超过目标应用程序。

关于android - 在 robotium 上测试 wifi 时出现安全异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16932641/

相关文章:

android - Android Visualizer行为

android - 字体调整不适用于 fragment 中的 Webview (FrameLayout)

Android如何获取媒体播放器进度条以及如何在每个 Activity 顶部屏幕上显示它

android - Robotium:Android 模拟器上的 Wifi 网络测试

android - 使用Robotiumin如何检查或制作测试用例以检查android中的网络连接可用性?

python - 如何隐藏机器人框架代码库并仅将二进制文件共享给客户端?

android - 如果 ListView 中没有项目,ListView.addFooterView() 不工作

android - 缩放动画模糊

java - 读取android资源文件抛出NullPointerException

Android 测试项目崩溃,错误 "Test run failed: Instrumentation run failed due to ' 进程崩溃 .'"