gpt4 book ai didi

Android AudioManager.FLAG_VIBRATE 不工作

转载 作者:行者123 更新时间:2023-11-30 04:24:05 25 4
gpt4 key购买 nike

我在 Activity 中执行以下代码来设置铃声模式和值:

void setRinger(int value) {
AudioManager manager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
manager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
manager.setStreamVolume(AudioManager.STREAM_RING, value, AudioManager.FLAG_PLAY_SOUND);
}

void setSilent() {
AudioManager manager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
manager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
manager.setStreamVolume(AudioManager.STREAM_RING, 0, AudioManager.FLAG_SHOW_UI);
}

void setVibrate() {
AudioManager manager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
manager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
manager.setStreamVolume(AudioManager.STREAM_RING, 0, AudioManager.FLAG_VIBRATE);
}

setRinger() 设置铃声值并播放声音作为确认。setSilent() 设置静音模式并显示“toast”作为确认。setVibrate() 设置振动模式,但手机不振 Action 为确认。

我使用的是 HTC Wildfire S (Android 2.3.5)。当我使用电话上的按钮更改铃声音量时,振动正常。

我做错了什么?任何空间特权?我尝试将 android.permission.VIBRATE 添加到 list 中 - 没有帮助。

经许可的 list :

<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".DroidUtilityActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.VIBRATE" />
</manifest>

Logcat 输出(我切断了大部分日志)只是为了证明调用了代码:

D/dalvikvm(13742): GC_CONCURRENT freed 279K, 47% free 2992K/5639K, external 0K/0K, paused 5ms+9msD/dalvikvm(11205): GC_EXPLICIT freed 10K, 47% free 2862K/5379K, external 0K/0K, paused 153msD/AudioManager(13742): setStreamVolume(streamType:2, index:3, flags:4)V/test    (13742): setringerD/InputManagerService(  131): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@40900198D/VolumePanel(  131): prepare soundD/VolumePanel(  131): prepare sound/system/media/audio/ui/Volume-1.mp3D/VolumePanel(  131): prepare sound/system/media/audio/ui/Volume-2.mp3...E/AudioService(  131): [AudioHandler] syncSetIndex Call setStreamVolumeIndex isHeadsetPlugged(): trueD/StatusBarService(  219): updateIcon slot=volume index=15 viewIndex=9 old=StatusBarIcon(pkg=com.android.systemui id=0x7f0200c7 level=0 visible=false num=0 ) icon=StatusBarIcon(pkg=com.android.systemui id=0x7f0200c6 level=0 visible=true num=0 )D/AudioManager(13742): setStreamVolume(streamType:2, index:0, flags:1)V/test    (13742): setsilentD/InputManagerService(  131): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@40b235c8D/AudioService(  131): [AudioHandler] persistVolumeForHeadset Name: volume_system_headset, mIndex_Headset: 0, mLastAudibleIndex_Headset: 7, current: true, lastAudible: trueD/AudioService(  131): [AudioHandler] persistVolumeForHeadset Name: volume_ring_headset, mIndex_Headset: 0, mLastAudibleIndex_Headset: 4, current: true, lastAudible: trueD/AudioService(  131): [AudioHandler] persistVolumeForHeadset Name: volume_ring_headset, mIndex_Headset: 0, mLastAudibleIndex_Headset: 4, current: true, lastAudible: trueD/AudioService(  131): [AudioHandler] persistVolumeForHeadset Name: volume_system_headset, mIndex_Headset: 0, mLastAudibleIndex_Headset: 7, current: true, lastAudible: trueD/StatusBarService(  219): updateIcon slot=volume index=15 viewIndex=9 old=StatusBarIcon(pkg=com.android.systemui id=0x7f0200c6 level=0 visible=true num=0 ) icon=StatusBarIcon(pkg=com.android.systemui id=0x7f0200c7 level=0 visible=true num=0 )D/AudioManager(13742): setStreamVolume(streamType:2, index:0, flags:16)V/test    (13742): setvibrateD/InputManagerService(  131): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@40c2d508D/StatusBarPolicy(  219): onSignalStrengthsChangedD/StatusBarService(  219): updateIcon slot=phone_signal index=20 viewIndex=13 old=StatusBarIcon(pkg=com.android.systemui id=0x7f0200d0 level=0 visible=true num=0 ) icon=StatusBarIcon(pkg=com.android.systemui id=0x7f0200d0 level=0 visible=true num=0 )I/EventLogService(  273): Aggregate from 1326197648488 (log), 1326197648488 (data)D/LocationManager(  131): _handleMessage: TYPE_LOCATION_CHANGEDD/GpsLocationProvider(  131): [handleMessage] message :7D/GpsLocationProvider(  131): [handleMessage] UPDATE_LOCATIOND/GpsLocationProvider(  131): handleUpdateLocationD/LocationManager( 3422): _handleMessage: TYPE_LOCATION_CHANGEDD/LocationManager(  327): _handleMessage: TYPE_LOCATION_CHANGEDD/LocationManager( 6893): _handleMessage: TYPE_LOCATION_CHANGEDD/LocationManager(  327): _handleMessage: TYPE_LOCATION_CHANGED

最佳答案

我遇到了和你一样的问题(使用 HTC Desire HD)。在我的例子中,同时使用两个标志(AudioManager.FLAG_VIBRATE 和 AudioManager.FLAG_SHOW_UI)解决了问题——手机振动并出现振动对话框。但是,当我仅使用 AudioManager.FLAG_VIBRATE 标志时,手机不会振动。在我的代码下面:

AudioManager manager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
manager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
int currentStreamRing = manager.getStreamVolume(AudioManager.STREAM_RING);
manager.setStreamVolume(AudioManager.STREAM_RING,currentStreamRing,AudioManager.FLAG_VIBRATE+AudioManager.FLAG_SHOW_UI);

关于Android AudioManager.FLAG_VIBRATE 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8801310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com