我的应用程序中有一个AlarmActivity,在其中我希望能够检查我的preferences.xml文件中的键“vibrate”的值,然后如果键返回true,则启动我的AlarmActivity中的振动模式。我以为我跟这个有关,但显然我不是。
AlarmActivity.java:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alarm);
final Vibrator vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
SharedPreferences prefs = this.getSharedPreferences("com.j5tech.app", Context.MODE_PRIVATE);
boolean alarmVibrate = prefs.getBoolean("vibrate", false);
if (alarmVibrate){
long[] pattern = { 0, 200, 500 };
vib.vibrate(pattern, 0);
}else{
}
...
}
在我的偏好.xml ...
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent">
<CheckBoxPreference
android:key="vibrate"
android:title="@string/vibrate_setting_title"
android:summary="@string/vibrate_setting_summary"
android:defaultValue="false" />
</PreferenceScreen>
答案 0 :(得分:0)
在清单中设置振动权限:
<uses-permission android:name="android.permission.VIBRATE" />
答案 1 :(得分:0)
我知道我并没有在这里开玩笑。使用SharedPreferences,我不应该经历一大堆这个并设置它。这是由班级照顾的。以下是我最终要做的设置,以便在AlarmActivity中正确使用vibrate方法。
在preferences.xml中有一个UI对象,一个CheckBoxPreference:
<CheckBoxPreference
android:name="@+id/chkbxVibrate"
android:key="vibrate"
android:title="@string/vibrate_setting_title"
android:summary="@string/vibrate_setting_summary"
android:defaultValue="false" />
然后PreferencesActivity.java非常简单:
...
public class PreferencesActivity extends PreferenceActivity {
@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
...
}
然后在我的AlarmActivity中,我想检查CheckBoxPreference对象的值:
final Vibrator vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
long[] pattern = { 0, 200, 500 };
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
boolean vibrate = prefs.getBoolean("vibrate", true);
if (vibrate == true){
vib.vibrate(pattern, 0);
}
就这么简单!我希望这有助于其他人。