如何在Android中控制蓝牙网络共享

时间:2014-03-17 03:16:04

标签: android

我有一个自定义应用程序,需要使用蓝牙系留连接,但连接的蓝牙设置中的“用于互联网访问”保持关闭,因此我失去了互联网连接。由于应用程序只需要每隔30分钟左右连接几秒钟进行更新,我就无法保持连接存活(这是一个电池供电的设备)

我在Play商店中看到了允许您设置自动连接的应用程序,但由于这是一个自定义系统,因此无法访问商店,所以我需要在我正在开发的应用程序中包含此功能。

如何从Android应用程序执行此操作?我需要哪些权限和系统设置才能从中获取访问权限?

1 个答案:

答案 0 :(得分:0)

尝试使用Android 2.2

int USBTethering(boolean b) {
    try {
        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        Log.d(tag, "test enable usb tethering");
        Method[] wmMethods = cm.getClass().getDeclaredMethods();
        String str = "";
        if (b)
            str = "tether";
        else
            str = "untether";
        for (Method method : wmMethods) {
            Log.d("in usb tethering method",method.getName()+"<<nn>>");
            if (method.getName().equals(str)) {
                Log.d(tag, "gg==" + method.getName());
                Log.d("in if", " case matches "+method.getName()+"and str is "+str);
                try {
                    Integer code = (Integer) method.invoke(cm, "usb0");
                //  code = (Integer) method.invoke(cm, "setting TH");
                    Log.d(tag, "code===" + code);
                    return 1;
                } catch (IllegalArgumentException e) {
                    Log.d(tag, "eroor== gg " + e.toString());
                    e.printStackTrace();
                } catch (IllegalAccessException e) {
                    Log.d(tag, "eroor== gg " + e.toString());
                    e.printStackTrace();
                } catch (InvocationTargetException e) {
                    Log.d(tag, "eroor== gg " + e.toString());
                    e.printStackTrace();
                }
            }
        }
        return 0;

                   } catch (Exception e) {
        Log.e(tag, "" + e);
        return 0;
    }

}

为Android 4.0设备添加以下行

method.setAccessible(true);

之前打电话

Integer code = (Integer) method.invoke(cm, "usb0");

另一个原因是接口名称(在您的情况下&#34; usb0&#34;也是供应商特定的。接口名称在不同制造商的不同设备上有所不同。请确保您已获得正在测试的设备的正确接口名称。