前段日子要用到设置飞行模式,于是就上网找了下,相关的东西不多,也许是大家认为这个东西不难,所以没人发帖。代码不多,于是我把代码贴到我的程序里,跑了一下,设置不成功(第一次测用的是中兴的手机),换了其他的5款不同手机都没问题,于是怀疑是Rom的问题。但是测试人员不承认这种说法,产品也不同意有这种bug。为了说服他们,我去网上下了个小程序,专门定时设置飞行模式的那种。神奇的是它在中兴那款手机上可以切换飞行模式。没办法,我把它反编译了(这里有点不对了)。发现原来是一个参数只差导致了我的错误。
Settings.System.putInt(getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 1);
Intent localIntent1 = new Intent("android.intent.action.AIRPLANE_MODE").putExtra("state", true);
sendBroadcast(localIntent1);
复制代码
这就是设置飞行模式的代码。很多网上的例子里“putExtra("state", true);”里的"true"用的是“1”,有的手机用1可以,但有的手机不同。这样就可以设置飞行模式了。“Settings.System.putInt(getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 1);”这句代码不写虽然进入飞行模式,但状态栏没有小飞机的标志
这个是取消飞行模式的代码
Settings.System.putInt(getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0);
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", false);
sendBroadcast(intent);
复制代码
Settings.System.putInt(getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 1);
Intent localIntent1 = new Intent("android.intent.action.AIRPLANE_MODE").putExtra("state", true);
sendBroadcast(localIntent1);
复制代码
这就是设置飞行模式的代码。很多网上的例子里“putExtra("state", true);”里的"true"用的是“1”,有的手机用1可以,但有的手机不同。这样就可以设置飞行模式了。“Settings.System.putInt(getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 1);”这句代码不写虽然进入飞行模式,但状态栏没有小飞机的标志
这个是取消飞行模式的代码
Settings.System.putInt(getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0);
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", false);
sendBroadcast(intent);
复制代码