APN开关啊急!!!!!!!!!!!!!!!

ajq1989 2012-03-28 01:18:33
做APN开关是遇到问题

ConnectivityManager mConnectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
mConnectivityManager.setMobileDataEnabled(true);

setMobileDataEnabled 提示错误
The method setMobileDataEnabled(boolean) is undefined for the type ConnectivityManager
网上找了是此方法被隐藏.改怎么调用啊?
...全文
346 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yr_lu 2012-03-28
  • 打赏
  • 举报
回复
自行编译framework.jar,把这个jar包加入工程的classpath,直接调用
ajq1989 2012-03-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

java.lang.SecurityException: Permission denial: writing to secure settings requires android.permission.WRITE_SECURE_SETTINGS



你配置文件里加个这个 android.permission.WRITE_SECURE_SETTINGS 权限再试试
[/Quote]

已经加了. 还是一样提示.
Nico 2012-03-28
  • 打赏
  • 举报
回复
java.lang.SecurityException: Permission denial: writing to secure settings requires android.permission.WRITE_SECURE_SETTINGS



你配置文件里加个这个 android.permission.WRITE_SECURE_SETTINGS 权限再试试
ajq1989 2012-03-28
  • 打赏
  • 举报
回复
代码

private void setMobileDataEnabled(Context context, boolean enabled) {
final ConnectivityManager conman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
Field iConnectivityManagerField;
try {
final Class conmanClass = Class.forName(conman.getClass().getName());
iConnectivityManagerField = conmanClass.getDeclaredField("mService");
iConnectivityManagerField.setAccessible(true);
final Object iConnectivityManager = iConnectivityManagerField.get(conman);
final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
setMobileDataEnabledMethod.setAccessible(true);

setMobileDataEnabledMethod.invoke(iConnectivityManager, enabled);
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchFieldException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
ajq1989 2012-03-28
  • 打赏
  • 举报
回复
报错log

03-28 17:41:56.150: W/System.err(9429): at android.net.IConnectivityManager$Stub$Proxy.setMobileDataEnabled(IConnectivityManager.java:631)
03-28 17:41:56.150: W/System.err(9429): at java.lang.reflect.Method.invokeNative(Native Method)
03-28 17:41:56.150: W/System.err(9429): at java.lang.reflect.Method.invoke(Method.java:521)
03-28 17:41:56.150: W/System.err(9429): at com.sumq.APNTestActivity.setMobileDataEnabled(APNTestActivity.java:308)
03-28 17:41:56.150: W/System.err(9429): at com.sumq.APNTestActivity.access$0(APNTestActivity.java:296)
03-28 17:41:56.150: W/System.err(9429): at com.sumq.APNTestActivity$2.onClick(APNTestActivity.java:67)
03-28 17:41:56.150: W/System.err(9429): at android.view.View.performClick(View.java:2464)
03-28 17:41:56.150: W/System.err(9429): at android.view.View$PerformClick.run(View.java:8930)
03-28 17:41:56.154: W/System.err(9429): at android.os.Handler.handleCallback(Handler.java:587)
03-28 17:41:56.154: W/System.err(9429): at android.os.Handler.dispatchMessage(Handler.java:92)
03-28 17:41:56.154: W/System.err(9429): at android.os.Looper.loop(Looper.java:123)
03-28 17:41:56.154: W/System.err(9429): at android.app.ActivityThread.main(ActivityThread.java:4627)
03-28 17:41:56.154: W/System.err(9429): at java.lang.reflect.Method.invokeNative(Native Method)
03-28 17:41:56.154: W/System.err(9429): at java.lang.reflect.Method.invoke(Method.java:521)
03-28 17:41:56.154: W/System.err(9429): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
03-28 17:41:56.154: W/System.err(9429): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
03-28 17:41:56.154: W/System.err(9429): at dalvik.system.NativeStart.main(Native Method)
03-28 17:41:56.154: W/System.err(9429): Caused by: java.lang.SecurityException: Permission denial: writing to secure settings requires android.permission.WRITE_SECURE_SETTINGS
03-28 17:41:56.158: W/System.err(9429): at android.os.Parcel.readException(Parcel.java:1260)
03-28 17:41:56.158: W/System.err(9429): at android.os.Parcel.readException(Parcel.java:1248)
03-28 17:41:56.158: W/System.err(9429): at android.net.IConnectivityManager$Stub$Proxy.setMobileDataEnabled(IConnectivityManager.java:627)
03-28 17:41:56.158: W/System.err(9429): ... 16 more

ajq1989 2012-03-28
  • 打赏
  • 举报
回复
反射之后提示要加权限
java.lang.SecurityException: Permission denial: writing to secure settings requires android.permission.WRITE_SECURE_SETTINGS

可是我已经加了还是一样提示这啊




啊啊啊啊啊.!!!各位大虾.帮帮忙.!
changy 2012-03-28
  • 打赏
  • 举报
回复
java的反射

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧