我知道Vibrate类以及如何使用它,但在哪里可以使用系统默认振动模式?或者是否有某种意图我可以启动以使系统振动其默认振动?
有没有办法测试Android Studio附带的虚拟设备上的振动?
我尝试搜索logcat,似乎没有任何迹象表明Android设备何时振动.
我正在尝试找到一种方法来在按键时禁用和启用键盘声音和振动.我搜索了Stack Overflow和其他Android论坛,但我没有找到任何结果.
我试图AudioManager
启用振动模式,但我想激活键盘上的振动模式和声音.
audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
AudioManager.VIBRATE_SETTING_ON);
Run Code Online (Sandbox Code Playgroud)
有没有办法改变android.provider.Settings
键盘的声音和振动?
我正在尝试开发一款适用于Android和Android的应用程序.我创建了从手机到手表的通知.
notification = new NotificationCompat.Builder(context)
.setSmallIcon(icon)
.setVibrate(new long[]{1000, 1000, 1000, 1000, 1000, 1000})
.setContentTitle(title)
.setContentText(content)
.setStyle(bigStyle.bigText(content))
.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), background))
.build();
Run Code Online (Sandbox Code Playgroud)
在我设置的手表清单中:
<uses-permission android:name="android.permission.VIBRATE"/>
Run Code Online (Sandbox Code Playgroud)
不幸的是,我没有任何振动.
我能怎么做 ?
谢谢.
我正在尝试创建一个Android应用程序,我在其中过滤一个特定频率的蜂鸣声并使手机振动.
我从移动设备的MIC中获取输入并使用MediaRecorder类,通过使用这个类,我可以记录,保存和播放输入.现在,只要有哔哔声或任何声音,我就需要我的手机振动.
输入是通过电线给移动设备的耳机插孔,所以我知道只有一个频率输入.
我有一个按钮,点击开始录制.我已经拥有振动并在我的清单文件中记录的权限.
record.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
isRecording=true;
myAudioRecorder.prepare();
myAudioRecorder.start();
...
}
Run Code Online (Sandbox Code Playgroud)
我也尝试搜索互联网,在这里发现了类似的问题,但我找不到任何正确的答案.
但是,我可以点击另一个按钮让手机振动,这里是代码片段,
Vibrator vibrate;
vibrate = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
Btn1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
vibrate.vibrate(800);
}
}
Run Code Online (Sandbox Code Playgroud)
我试着在recorder.start()中调用一个振动器; 功能但这使手机即使在没有声音时也会振动.我也试过从这个问题得到帮助,所以每当有沉默,手机不应该振动,但我感到困惑,我知道应该有一个布尔值,当有声音并使手机振动时,它会变为真,但我我无法将此逻辑放入代码中.请让我知道在这种情况下我该怎么办?我应该在哪个方向搜索?
更新 我发现这个动作用于显示输入声音幅度的进度条,它工作正常,我试图让手机在缓冲区有一些值时振动,现在它振动甚至当振幅为零时,我猜那是因为事实上,每一次振动都会产生噪音,导致手机振动.由于java.lang.RuntimeException,我无法通过TOAST检查函数:无法在未调用Looper.prepare()的线程内创建处理程序.有什么建议吗?
任何人都可以告诉我如何振动相同的模式5次像我的模式
long[] pattern = { 0, 200, 500 };
我希望这种模式重复5次
Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(pattern , 5);
Run Code Online (Sandbox Code Playgroud) 我尝试使用设备的默认振动设置振动我的应用程序,但我不能使用振动.我尝试了下面的代码.
case AudioManager.RINGER_MODE_VIBRATE:
Vibrator vibrator = (Vibrator) this.context.getSystemService(Context.VIBRATOR_SERVICE);
long[] pattern = { 0, 1000, 2000, 3000, 2000 };
vibrator.vibrate(pattern, 0);
Run Code Online (Sandbox Code Playgroud)
有没有办法用默认设置振动设备.我使用了模式,但我需要设备来电默认振动设置.
或者我怎样才能获得设备的振动模式?
谢谢.
我在Android应用程序中单击按钮运行此操作:
public void vibrateold() {
Vibrator vibrate = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
vibrate.vibrate(4000);
}
Run Code Online (Sandbox Code Playgroud)
但是在4秒钟之前离开活动时振动不会停止.我该如何阻止它?
我使用下面的代码来振动设备.
public void vibrator() {
try {
Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(5000);
} catch (Exception e) {
Log.d(TAG, "vibrator exception: " + e);
}
}
Run Code Online (Sandbox Code Playgroud)
我们能以编程方式检测此事件(检查是设备振动)吗?
我试图了解是否在系统设置中启用了触觉反馈,即在设备上全局启用。我不需要设置这个设置,只需读取即可。
我们在 Android 12 或更低版本上这样做:
Settings.System.getInt(context.contentResolver, Settings.System.HAPTIC_FEEDBACK_ENABLED) == 1
Run Code Online (Sandbox Code Playgroud)
但随着 Android 13 的发布,Google 弃用了 flag HAPTIC_FEEDBACK_ENABLED
。现在推荐使用android.os.VibrationAttributes.USAGE_TOUCH
。实在是无法理解如何使用。
我需要这样的东西:
val hapticEnabled: Boolean
get() = if (BuildConfig.VERSION_CODE >= Build.VERSION_CODES.TIRAMISU) {
// here what I'm trying to find out
} else {
Settings.System.getInt(context.contentResolver, Settings.System.HAPTIC_FEEDBACK_ENABLED) == 1
}
Run Code Online (Sandbox Code Playgroud)