Я хочу написать приложение, которое может изменить настройку мечты. Это потребует установки моей собственной мечты как выбранной, а также сделать, когда играть вариант как «Либо». Возможно ли реализовать эту функцию в sdk версии 19?В андроиде, как изменить настройки Daydream из кода?
ответ
Если вы хотите установить мечту для пользователя, вы не сможете этого сделать. Однако вы можете открыть системные настройки в нужном месте, чтобы пользователь мог выбирать из установленных мечтаний.
Вы можете предоставить кнопку для доступа к настройкам, так как свою заставку:
public void onSettingsButtonClick(View v) {
Intent intent;
if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN_MR2) {
intent = new Intent(Settings.ACTION_DREAM_SETTINGS);
} else {
intent = new Intent(Settings.ACTION_DISPLAY_SETTINGS);
}
startActivity(intent);
}
Это займет пользователю либо «Настройки Daydream» или в разделе «Настройки дисплея» в настройках устройства.
Если вы хотите, чтобы пользователь имел возможность перейти от настроек устройства к конкретной деятельности по настройке грезы, вы можете добавить тег <meta-data/>
здесь как элемент вашей службы Daydream в манифесте:
<service
android:name="some.package.SomeDaydream"
android:exported="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.service.dreams.DreamService" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.service.dream"
android:resource="@xml/dream_info" />
</service>
При настройке уровня api 21 и выше вы должны объявить службу в вашем файле манифеста с помощью разрешения BIND_DREAM_SERVICE. Например:
android:permission="android.permission.BIND_DREAM_SERVICE">
Затем в /res/xml/
, добавьте dream_info.xml
:
<?xml version="1.0" encoding="utf-8"?>
<dream xmlns:android="http://schemas.android.com/apk/res/android"
android:settingsActivity="some.package/.SomeActivity" />
У меня есть пример Daydream here, который показывает это поведение (в обоих направлениях).
Есть ли способ запустить выбранный вами мечты программным путем? Я просто разместил вопрос об этом здесь: http://stackoverflow.com/questions/21369368/how-do-you-start-the-users-selected-daydream-programmatically –
Если у вас есть настройкиАктивность, не забывайте объявите его в файле манифеста приложения, иначе он не будет загружен, и вы получите сообщение об ошибке, когда пользователь попытается запустить страницу настроек. – markmanca