BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #47295同步于 2016/1/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

[问题]不报错的bug:用反射调用蓝牙的隐藏API

Drizzle
2016/1/14镜像同步0 回复
第一次用反射,打得日志稍微多点,却依旧找不到问题,跪求大神们指条明路。不甚感激。 private void setDiscoverableTimeout(int timeout){ try { System.out.println("refelect method called"+timeout); //日志正常 Method setDiscoverableTimeout=BluetoothAdapter.class.getMethod("setDiscoverableTimeout",int.class); System.out.println("test"+setDiscoverableTimeout.getName()); //日志正常 // setDiscoverableTimeout.setAccessible(true); System.out.println("refelect setDiscoverableTimeout called found"); //这块是将设备设置为一直可见 //Method setScanMode=BluetoothAdapter.class.getMethod("setScanMode",int.class,int.class); // setScanMode.setAccessible(true); // System.out.println("refelect setScanMode called found"); Object returnvalue=setDiscoverableTimeout.invoke(bluetooth,timeout); // setScanMode.invoke(bluetooth,BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE,timeout); System.out.println(returnvalue==null);//心塞,这块打得是true } catch (NoSuchMethodException e) { // TODO Auto-generated catch block Log.e(TAG,"Failed to find setDiscoverableTimeout"); e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block Log.e(TAG,"Illegal to acess setDiscoverableTimeout"); e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block Log.e(TAG,"Illegal argument for method setDiscoverableTimeout"); e.printStackTrace(); } catch (InvocationTargetException e) { // TODO Auto-generated catch block Log.e(TAG,"Invocation exception for method setDiscoverableTimeout"); e.printStackTrace(); } }
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。