【问题标题】:WiFi on Emulator: Error 10038模拟器上的 WiFi:错误 10038
【发布时间】:2011-11-16 12:37:09
【问题描述】:

我正在尝试在 WiFi 接口上实现一些 QoS 算法。

public class MYActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        WifiManager MYManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
        WifiInfo MYInfo = MYManager.getConnectionInfo();
        TextView MYLinkSpeed = new TextView(this);
        MYLinkSpeed.setText(Integer.toString(MYInfo.getLinkSpeed()));
    }
}

但是应用程序在模拟器上“强制关闭”,并在 Eclipse 控制台上显示以下消息。

java.lang.SecurityException: WifiService: 既不是用户 10038 也不是 当前进程有android.permission.ACCESS_WIFI_STATE。

使用“F8”功能启用/禁用 Wi-Fi 无济于事。 清单中正确设置了“使用权限”。

这是我的 AndroidManifest:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="schemas.android.com/apk/res/android"; 
          package="com.MY" android:versionCode="1" android:versionName="1.0"> 
    <uses-sdk android:minSdkVersion="8" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-feature android:name="android.hardware.wifi" /> 
    <application> 
        <!-- ... -->
    </application> 
</manifest>

【问题讨论】:

  • 看不出有什么问题——您也可以发布您的清单吗?也许权限不在正确的地方或类似的地方。
  • 谢谢,将其编辑到您的问题中。也看不出有什么不对。可能是模拟器 wifi 功能有些受限,但我不能肯定地说,因为我几乎只在物理设备上进行测试。也许其他人知道更多,请稍等。 :)
  • @ALEXTSC - 请在下面找到清单:schemas.android.com/apk/res/android" package="com. MY" android:versionCode="1" android:versionName="1.0" >
  • @alextsc - 谢谢。我将 .apk 加载到我的手机(samsung ace froyo)上,但问题仍然存在。仅供参考。

标签: android android-wifi


【解决方案1】:

将此添加到您的清单中,从日志中您没有wifi状态侦听权限的问题非常明显。

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

【讨论】:

  • 没关系。我无法阅读。对不起,你是对的。完全忽略了不同的权限名称。
  • 如果您的问题得到解决,请将此帖子标记为答案,谢谢。
猜你喜欢
  • 2011-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多