有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Q切换用户的全局设置(WiFi、位置等)2个想法。。思想?

我的问题: 如何关闭用户的全局设置(如“位置”或“蓝牙”或“WiFi”等)

在了解到我不能通过权限完成此操作后,我想到了一些关于可能如何完成此操作的其他想法/想法,需要一些澄清

(1)获得“电话管理员”权限(类似于NOVA这样的启动器执行某些操作的方式)是否有效? 注意:我指的是您可能在中找到的应用程序(设置>;锁定屏幕和安全>;其他安全设置>;电话管理员)

(2)成为“设备所有者”(如Android Studio中的“设备所有者”Android代码示例)会有帮助吗

:/

在这一点上,我完全没有想法,我不希望我迄今为止的工作白费。。 请注意,我实际上是在尝试关闭设置,而不是打开。。但我怀疑这有什么区别

如果有人能为我提供上述问题的答案,我将不胜感激! 任何信息都会对我大有帮助
谢谢:)


共 (1) 个答案

  1. # 1 楼答案

    对于Wifi,请尝试以下操作:

    WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
    wifiManager.setWifiEnabled(true);        //TURN WIFI ON
    wifiManager.setWifiEnabled(false);       //TURN WIFI OFF
    

    另外,将此项添加到AndroidManifest.xml文件中:

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

    对于蓝牙,请尝试以下操作:

    BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
    bluetooth.disable();
    bluetooth.enable();
    

    并将其添加到AndroidManifest.xml文件中:

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

    有关位置,请尝试以下操作:(注意:在Android 4.0及更高版本上,不允许/不“可能”打开/关闭GPS/Location,但是,一些人报告此解决方案可能会起作用)

    public void turnGPSOn()
    {
         Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
         intent.putExtra("enabled", true);
         this.ctx.sendBroadcast(intent);
    
        String provider = Settings.Secure.getString(ctx.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
        if(!provider.contains("gps")){ //if gps is disabled
            final Intent poke = new Intent();
            poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider"); 
            poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
            poke.setData(Uri.parse("3")); 
            this.ctx.sendBroadcast(poke);
    
    
        }
    }
    // automatic turn off the gps
    public void turnGPSOff()
    {
        String provider = Settings.Secure.getString(ctx.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
        if(provider.contains("gps")){ //if gps is enabled
            final Intent poke = new Intent();
            poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");
            poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
            poke.setData(Uri.parse("3")); 
            this.ctx.sendBroadcast(poke);
        }
    }
    

    我希望这将有助于解决您的问题,如果问题仍然存在,或者如果您希望知道如何打开/关闭其他全球设置,请搜索此论坛,我相信您会发现一些有用的内容