解决方案 »

  1.   

    try
    switch3.setOnCheckedChangeListener(new OnCheckedChangeListener() {
     
            @Override
            public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) {
                // TODO Auto-generated method stub
     
                if (isChecked) {
         
               Settings.System.putInt(getContentResolver(),
    Settings.System.AIRPLANE_MODE_ON, 1);
    Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED)
    .putExtra("state", true);
    sendBroadcast(intent);
                } else {
                   Settings.System.putInt(getContentResolver(),
    Settings.System.AIRPLANE_MODE_ON, 0);
    Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED)
    .putExtra("state", false);
    sendBroadcast(intent);
                }
            }
        });
      

  2.   

    终于找到出错的原因了,找了很多资料后发现Setting airplane_mode_on has moved from android.provider.Settings.System to android.provider.Settings.Global。他所在的包已经变过了。在4.2以上的版本app没有权限修改Setting.Global的,所以找到的解决办法是把你的App放到系统的system/app目录下,然后install。这样一来,App成为system app,可以获得写Setting.Global的权限。