0

是否可以将系统振动模式作为long[]阵列获得?例如标准 SMS 振动模式或在偏好 SMS 振动信号中选择的当前。

4

1 回答 1

0

我认为不可能将当前设备的默认模式作为long[]数组获取。您可能必须对此进行反复试验。并在您的代码上设置一堆 if's 以根据设备或手机品牌选择不同的振动模式。

就像是:

你的活动.java

import android.os.Vibrator;

private long[] patt;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    String man = android.os.Build.MANUFACTURER; 

    if (man.equals("SAMSUNG")) {
        patt = {0l,300l,50l,350l};
    }
    else {
        patt = {0l,200l,100l,100l};
    }

    vibrate(patt);
}

private void vibrate(long[] pattern) {
        Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

        if (v.hasVibrator()) {
           v.vibrate(pattern,-1);
        }            
    }

并且不要忘记添加振动权限。

AndroidManifest.xml

<uses-permission android:name="android.permission.VIBRATE"/>

有关信息,请参阅此链接android.os.Build

于 2015-07-28T14:52:08.300 回答