【问题标题】:Android user permission errorAndroid用户权限错误
【发布时间】:2014-12-04 11:56:18
【问题描述】:

我有一个错误:

Caused by: java.lang.SecurityException: WifiService: Neither user 10132 nor current process has android.permission.ACCESS_WIFI_STATE.

我尝试获取 wifi 名称 (ssid)。我使用此代码:

WifiManager wifiManager = (WifiManager) getSystemService (Context.WIFI_SERVICE);
System.out.println(wifiManager.getConnectionInfo ().getSSID ());

在我的清单文件中,我添加了这个权限:

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

我做错了什么? Thisthis 对我不起作用 谢谢

我的完整日志:

10-09 16:08:23.705  31988-31988/com.example.android.navigationdrawerexample E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.navigationdrawerexample/com.example.android.navigationdrawerexample.MainActivity}: java.lang.SecurityException: WifiService: Neither user 10132 nor current process has android.permission.ACCESS_WIFI_STATE.
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2255)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2309)
            at android.app.ActivityThread.access$700(ActivityThread.java:157)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1289)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:176)
            at android.app.ActivityThread.main(ActivityThread.java:5319)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.SecurityException: WifiService: Neither user 10132 nor current process has android.permission.ACCESS_WIFI_STATE.
            at android.os.Parcel.readException(Parcel.java:1425)
            at android.os.Parcel.readException(Parcel.java:1379)
            at android.net.wifi.IWifiManager$Stub$Proxy.getConnectionInfo(IWifiManager.java:991)
            at android.net.wifi.WifiManager.getConnectionInfo(WifiManager.java:976)
            at com.example.android.navigationdrawerexample.MainActivity$PlanetFragment.onCreateView(MainActivity.java:261)
            at android.app.Fragment.performCreateView(Fragment.java:1699)
            at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:903)
            at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1075)
            at android.app.BackStackRecord.run(BackStackRecord.java:682)
            at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1455)
            at android.app.Activity.performStart(Activity.java:5335)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2227)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2309)
            at android.app.ActivityThread.access$700(ActivityThread.java:157)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1289)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:176)
            at android.app.ActivityThread.main(ActivityThread.java:5319)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
            at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

  • 仅检查拼写或删除该权限并从开发站点再次复制粘贴,当我们拼写错误时会出现错误。 或者彻底检查你的清单。祝你好运:)

标签: java android


【解决方案1】:
if(provider!=null && !provider.equals("")){

    // Get the location from the given provider
    Location location = locationManager.getLastKnownLocation(provider);   // error (call require permission which may be rejected by user)

    locationManager.requestLocationUpdates(provider, 20000, 1, this);

    if(location!=null)
        onLocationChanged(location);
    else
        Toast.makeText(getBaseContext(), "Location can't be retrieved", Toast.LENGTH_SHORT).show();
    }else{
        Toast.makeText(getBaseContext(), "No Provider Found", Toast.LENGTH_SHORT).show();
    }
}

【讨论】:

    【解决方案2】:

    将此添加到您的 AndroidManifest.xml 中

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    

    对我来说没问题!

    【讨论】:

      【解决方案3】:

      考虑到您使用了正确的权限并且这些行在语法上是正确的,如果您在除清单 xml 节点,它们可能根本不起作用。他们需要 &lt;manifest&gt; 和之前 &lt;/manifest&gt; 但不在&lt;application&gt;&lt;activity&gt; 内部

      <manifest xlmns:android...>
       <uses-permission android:name="android.permission.INTERNET"/>
       <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
       ...YOUR APPLICATION & ACTIVITY HERE...
      </manifest>
      

      请注意,为了便于阅读,清单标记已被简化

      <uses-permission>

      【讨论】:

      • 是的,你是对的。我对 有这个权限
      • 很高兴你明白了 ;)
      【解决方案4】:

      当你改变wifi状态时,这个也需要这个。

      试试这个。

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

      在 AndroidManifest.xml 中添加此权限列表:

      <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
      <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 
      <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 
      <uses-permission android:name="android.permission.INTERNET" /> 
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
      

      【讨论】:

      猜你喜欢
      • 2015-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多