【发布时间】:2014-03-21 02:40:38
【问题描述】:
我想用 Adb 配置我的 Wifi AP。
我已经制作了一个 Java 活动:
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiConfiguration wc = new WifiConfiguration();
wc.SSID = "\"ap_name\"";
wc.preSharedKey = "\"password\"";
wc.hiddenSSID = false;
wc.status = WifiConfiguration.Status.ENABLED;
int res = wifi.addNetwork(wc);
Log.d("WifiPreference", "add Network returned " + res );
boolean b = wifi.enableNetwork(res, true);
Log.d("WifiPreference", "enableNetwork returned " + b );
if (b) tv.setText("Internet conectado");
wifi.saveConfiguration();
在我的清单中我有:
<uses-permission android:name="android.permission.INTERNET"/>
<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.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
当我从 Eclipse 或已安装的应用程序运行它时,它运行正常 但是当我从 Adb 运行它时,使用:
adb shell am start -n com.mexico.sgp/.ConfigureWifi
我得到一个权限错误:
Starting: Intent { cmp=com.mexico.sgp/.ConfigureWifi }
java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.mexico.sgp/.ConfigureWifi } from null (pid=3279, uid=2000) not exported from uid 10130
at android.os.Parcel.readException(Parcel.java:1425)
at android.os.Parcel.readException(Parcel.java:1379)
at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1857)
at com.android.commands.am.Am.runStart(Am.java:463)
at com.android.commands.am.Am.run(Am.java:108)
at com.android.commands.am.Am.main(Am.java:81)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:237)
at dalvik.system.NativeStart.main(Native Method)
如何从 adb 获得许可???
【问题讨论】:
标签: android permissions adb