Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓2.2上的振动设置_Android_Settings_Vibration_Android 2.2 Froyo - Fatal编程技术网

Android 安卓2.2上的振动设置

Android 安卓2.2上的振动设置,android,settings,vibration,android-2.2-froyo,Android,Settings,Vibration,Android 2.2 Froyo,我正在制作一个振动切换小部件事实上,它的第一个版本已经上市了,但是我对安卓2.2的振动设置有一些问题 在Android 2.1之前,我没有问题,当我想禁用振动时,我会这样做 am.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,AudioManager.VIBRATE_SETTING_OFF); am.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,AudioManager.V

我正在制作一个振动切换小部件事实上,它的第一个版本已经上市了,但是我对安卓2.2的振动设置有一些问题

在Android 2.1之前,我没有问题,当我想禁用振动时,我会这样做

am.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,AudioManager.VIBRATE_SETTING_OFF);
am.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,AudioManager.VIBRATE_SETTING_OFF);
同样的,但在两条线路上都设置了振动来打开它,它工作正常

然而,由于Android 2.2引入了仅在静默模式下振动和不在静默模式下振动,我不知道如何使其工作。当振动设置为“始终”或“从不”时,没有问题,但只要用户手动将其设置为其他两个设置之一,应用程序就会开始做奇怪的事情

例如,如果我将它设置为仅在静默模式下振动,并且我通过我的小部件关闭振动,它将关闭,但当我重新打开它时。。。它返回到“仅在静默模式下”而不是“始终”。事实上,除非通过设置->声音,否则无法将其设置回“始终”,因此我猜振动模式的组合框正在执行我不知道的其他操作。这就像它将值存储在其他地方,因为即使我手动设置为“始终”,当我禁用它并使用我发布的代码通过小部件再次启用它时,它仍会返回到仅在静默模式下振动

更重要的是,AudioManager类中有一个值,用于仅在静默模式下振动设置,但当您将其设置为仅在非静默模式下时,它使用振动设置,因此无法检测它,我的意思是,我不知道

希望我没有太困惑,但我想给出所有可能的数据。在这一切的安排下

有人知道如何正确处理2.2中的振动设置吗?为了完全禁用或启用振动,是否需要设置其他变量或调用其他函数?还是将手机重置为已知状态以使其正常工作

重现问题或至少其中一个问题的步骤如下:

通过设置菜单将振动设置为仅在静默模式下

通过小部件将振动设置为从不:

设置振动设置AudioManager.VIBRATE_TYPE_RINGER,AudioManager.VIBRATE_设置_OFF

在“设置”菜单中选中“振动”设置为“从不”

通过小部件将振动设置为始终:

设置振动设置AudioManager.VIBRATE_类型_振铃器,AudioManager.VIBRATE_设置打开

转到设置菜单->振动设置为仅在静默模式下
当一些应用程序弄乱了我的NexusOne的个人设置时,我不得不自己处理这些设置。这是:

始终在环上振动:

切勿在吊环上振动:

仅在无声状态下在环上振动:

始终在通知时振动:

切勿在以下情况下振动:

仅在无声状态下通知时振动:

AudioManager.setRingerMode; AudioManager.setRingerMode; AudioManager.setRingerMode


振动设置独立于振铃器设置。混乱接踵而至。

当某个应用程序弄乱了我的NexusOne的个人设置时,我不得不自己处理这些设置。这是:

始终在环上振动:

切勿在吊环上振动:

仅在无声状态下在环上振动:

始终在通知时振动:

切勿在以下情况下振动:

仅在无声状态下通知时振动:

AudioManager.setRingerMode; AudioManager.setRingerMode; AudioManager.setRingerMode


振动设置独立于振铃器设置。混乱接踵而至。

好吧,我想我终于解决了。 我查看了com.android.settings.settings类的源代码,并复制了启用和禁用振动的部分方法:


无论如何谢谢你,马加约,你给我指出了正确的方向。

好的,我想我终于修好了。 我查看了com.android.settings.settings类的源代码,并复制了启用和禁用振动的部分方法:


无论如何谢谢你,马加约,你为我指明了正确的方向。

谢谢你,马加约,但我仍然有问题。。。我已经添加了一些步骤来重现问题中的问题。路德,您可能需要使用振动设置和振铃器设置的组合。我知道,这让人困惑。Android设置应用程序实际上正在更改振铃器设置,请参见答案底部的“我的编辑”。如果你想要一个真正的永不振动,你需要设置振动设置。。。振动设置关闭和设置模式。。。振铃器模式正常。试试看。再次谢谢你,我今天下午回家后会试试,告诉你它是否管用:嗨,马加约,很抱歉耽搁了。我试过了,但它一直在做同样的事情:我试着在改变振动设置之前和之后将振铃器模式设置为正常,但仍然没有成功。谢谢你的时间和想法,谢谢你,马加约,但我仍然有问题。。。我已经添加了重现问题的步骤。路德,您可能需要使用振动设置和振铃器se的组合
滴答声。我知道,这让人困惑。Android设置应用程序实际上正在更改振铃器设置,请参见答案底部的“我的编辑”。如果你想要一个真正的永不振动,你需要设置振动设置。。。振动设置关闭和设置模式。。。振铃器模式正常。试试看。再次谢谢你,我今天下午回家后会试试,告诉你它是否管用:嗨,马加约,很抱歉耽搁了。我试过了,但它一直在做同样的事情:我试着在改变振动设置之前和之后将振铃器模式设置为正常,但仍然没有成功。不过,感谢您的时间和想法:
setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_ON);
setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF);
setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_ONLY_SILENT);
setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_ON);
setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_OFF);
setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_ONLY_SILENT);