所以我试图模拟手机正在接听电话。我已成功提取手机铃声并播放。现在我想模拟振动。虽然我可以让手机振动,但我想模拟手机在接到电话时振动的确切模式。是否有一些设置或类可用于提取此模式,并检测是否打开了振动?
问问题
2016 次
3 回答
4
你必须以某种方式振动它。
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
// 1. Vibrate for 1000 milliseconds
long milliseconds = 1000;
v.vibrate(milliseconds);
// 2. Vibrate in a Pattern with 500ms on, 500ms off for 5 times
long[] pattern = { 500, 300 };
v.vibrate(pattern, 5);
http://www.androidsnippets.org/snippets/22/
我不确定使用什么模式作为标准,您可能可以在源代码中找到它,或者自己继续尝试不同的模式,直到满意为止。
于 2010-02-19T16:44:54.983 回答
0
似乎没有任何课程可以为您提供来电的“标准”振动设置。由于大多数手机都带有定制的供应商呼叫者应用程序,并且由于 Google Play 上有很多定制的呼叫者应用程序,因此这种“标准”模式可能甚至不存在。
来自 AOSP 的标准调用者应用程序使用这种模式:
private static final int VIBRATE_LENGTH = 1000; // ms
private static final int PAUSE_LENGTH = 1000; // ms
并检测振动是否打开:
boolean shouldVibrate() {
AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
int ringerMode = audioManager.getRingerMode();
if (Settings.System.getInt(mContext.getContentResolver(), "vibrate_when_ringing", 0) > 0) {
return ringerMode != AudioManager.RINGER_MODE_SILENT;
} else {
return ringerMode == AudioManager.RINGER_MODE_VIBRATE;
}
}
这取决于您可以在标准手机设置中找到的“振铃时振动”和“声音模式”设置。
于 2019-01-09T11:01:46.797 回答
-1
为什么不使用 Android 源代码来看看他们是如何做到的?
电话应用程序源可从
https://android.googlesource.com/platform/packages/apps/Phone
于 2010-02-19T11:24:30.880 回答