Java 如何通过按钮启用3G-android

Java 如何通过按钮启用3G-android,java,android,button,Java,Android,Button,我找了一本书,但没有找到我想要的 我正在尝试制作一个应用程序,用户可以通过为每个应用程序按一个按钮来打开和关闭它 我发现了一些使用反射的代码(我将使用Android2.3和更高版本),但我不知道如何将其与按钮配合使用 我搜索反射是如何工作的,我花了很多时间寻找其他的方法,但是。。。任何人为我工作的人 最糟糕的问题是我发现的代码和示例没有使用异常(抛出或尝试捕获),所以我不知道如何使用它们 这是我在这里找到的代码,但我不知道如何在点击按钮时使用它(或将其称为true或false,以便启用和禁用3G

我找了一本书,但没有找到我想要的

我正在尝试制作一个应用程序,用户可以通过为每个应用程序按一个按钮来打开和关闭它

我发现了一些使用反射的代码(我将使用Android2.3和更高版本),但我不知道如何将其与按钮配合使用

我搜索反射是如何工作的,我花了很多时间寻找其他的方法,但是。。。任何人为我工作的人

最糟糕的问题是我发现的代码和示例没有使用异常(抛出或尝试捕获),所以我不知道如何使用它们

这是我在这里找到的代码,但我不知道如何在点击按钮时使用它(或将其称为true或false,以便启用和禁用3G/移动数据)

有人能帮我吗

private void setMobileDataEnabled(Context context, boolean enabled) {
        final ConnectivityManager conman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        final Class conmanClass = Class.forName(conman.getClass().getName());
        final Field 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);
     }
链接到我找到此代码的位置:
你好!您只需在每个按钮的onClickListener中调用函数,并让函数在单独的线程中运行

打开按钮:

btOn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Toast.makeText(MainActivity.this,"Trying to switch on 3G!",Toast.LENGTH_SHORT).show();

                (new Thread(new Runnable() {
                    @Override
                    public void run() {

                        setMobileDataEnabled(MainActivity.this,true);

                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(MainActivity.this, "Switched ON 3G!", Toast.LENGTH_SHORT).show();
                            }
                        });

                    }
                })).start();
            }
        });
        btOff.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this,"Trying to switch off 3G!",Toast.LENGTH_SHORT).show();

                (new Thread(new Runnable() {
                    @Override
                    public void run() {

                        setMobileDataEnabled(MainActivity.this,false);

                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(MainActivity.this, "Switched OFF 3G!", Toast.LENGTH_SHORT).show();
                            }
                        });


                    }
                })).start();



            }
        });
关闭按钮:

btOn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Toast.makeText(MainActivity.this,"Trying to switch on 3G!",Toast.LENGTH_SHORT).show();

                (new Thread(new Runnable() {
                    @Override
                    public void run() {

                        setMobileDataEnabled(MainActivity.this,true);

                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(MainActivity.this, "Switched ON 3G!", Toast.LENGTH_SHORT).show();
                            }
                        });

                    }
                })).start();
            }
        });
        btOff.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this,"Trying to switch off 3G!",Toast.LENGTH_SHORT).show();

                (new Thread(new Runnable() {
                    @Override
                    public void run() {

                        setMobileDataEnabled(MainActivity.this,false);

                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(MainActivity.this, "Switched OFF 3G!", Toast.LENGTH_SHORT).show();
                            }
                        });


                    }
                })).start();



            }
        });
*将try…catch子句添加到函数:

btOn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Toast.makeText(MainActivity.this,"Trying to switch on 3G!",Toast.LENGTH_SHORT).show();

                (new Thread(new Runnable() {
                    @Override
                    public void run() {

                        setMobileDataEnabled(MainActivity.this,true);

                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(MainActivity.this, "Switched ON 3G!", Toast.LENGTH_SHORT).show();
                            }
                        });

                    }
                })).start();
            }
        });
        btOff.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this,"Trying to switch off 3G!",Toast.LENGTH_SHORT).show();

                (new Thread(new Runnable() {
                    @Override
                    public void run() {

                        setMobileDataEnabled(MainActivity.this,false);

                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(MainActivity.this, "Switched OFF 3G!", Toast.LENGTH_SHORT).show();
                            }
                        });


                    }
                })).start();



            }
        });
最终连接经理康曼

conman=(ConnectivityManager)context.getSystemService(context.CONNECTIVITY_服务)


我希望这能回答你的问题

请引用你在哪里找到这段代码,谢谢。我在这里找到了它:你的问题不是如何启用3G,而是为按钮分配一个功能。确切地说,我想修改这段代码,使其与按钮一起工作。这正是我要找的,工作非常完美,我非常感谢你的帮助,我不敢相信我唯一需要做的就是:setMobileDataEnabled(MainActivity.this,true/false)。谢谢你的帮助(y)