2016-04-06 54 views
3

我正在嘗試開發一個內置了白日夢功能的應用程序。我指的是下面的教程:無法在我的自定義Android應用程序中啓動DayDream服務

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

在設置>顯示>白日夢,我能看到在應用程序列表我的應用程序,但是當我嘗試啓動它,什麼都不會發生。我無法理解發生了什麼問題。

以下是我關於一樣的, 清單文件代碼:

<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); 

    } 
} 

回答

6

你的目標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> 

相關問題