Невозможно запустить сервис DayDream в моем приложении для Android

Я пытаюсь разработать приложение, в которое встроена функция мечты. Я имею в виду следующий урок:

http://www.technotalkative.com/how-to-create-daydream/

В разделе "Настройки"> "Экран"> "DayDream" я вижу свое приложение в списке приложений, но когда я пытаюсь его запустить, ничего не происходит. Я не могу понять, что происходит не так.

Ниже приведен мой код относительно того же файла Manifest:

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <service
        android:name=".MyDreamService"
        android:exported="true"
        android:label="Test - DayDream" >
        <intent-filter>
            <action android:name="android.service.dreams.DreamService" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </service>
</application>

Файл класса:

import android.graphics.Color;
import android.service.dreams.DreamService;
import android.widget.TextView;

public class MyDreamService extends DreamService {
    @Override
   public void onAttachedToWindow() {
       super.onAttachedToWindow();

       // Allow user touch
       setInteractive(true);

       // Hide system UI
       setFullscreen(true);

       // Set the dream layout
       TextView txtView = new TextView(this);
       setContentView(txtView);
       txtView.setText("Hello DayDream world from TechnoTalkative.com !!");
       txtView.setTextColor(Color.rgb(184, 245, 0));
       txtView.setTextSize(30);

   }
}

1 ответ

Решение

Вы нацелены на уровень API 21 или выше. Вам нужно установить разрешение службы BIND_DREAM_SERVICE, чтобы исполнить свою мечту:

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<service
    android:name=".MyDreamService"
    android:exported="true"
    android:label="Test - DayDream" 
    android:permission="android.permission.BIND_DREAM_SERVICE"**>
    <intent-filter>
        <action android:name="android.service.dreams.DreamService" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</service>

Другие вопросы по тегам