現象としてはスクリーンセイバーを選択して「今すぐ表示」 を選んでもなぜか時計が表示されるという不可解な現象。
最初はAndroidのバグか!と思いながらも他のものを選択すると正しく動作するので、時間ができたときに対応しようと悔しい思いをしながら寝た訳ですが、早速デバッグしてみます。
そもそも設定画面に開発者~が出ていない(笑)
どこか忘れたけどタップすればいいんだっけ?とおもいつつひたすら設定項目を連打。
ようやくデベロッパーになりました。
さて、実際のログを表示させてみると、それっぽいのがありました。
03-30 12:30:09.941 1325-1339/? I/PowerManagerService﹕ Nap time (uid 1000)...
03-30 12:30:09.942 1325-1352/? W/DreamManagerService﹕ Dream ComponentInfo{jp.rallwell.siriuth.stardaydream/jp.rallwell.siriuth.stardaydream.StarDaydream} is not available because its manifest is missing the android.permission.BIND_DREAM_SERVICE permission on the dream service declaration.
03-30 12:30:09.942 1325-1352/? W/DreamManagerService﹕ Falling back to default dream ComponentInfo{com.google.android.deskclock/com.android.deskclock.Screensaver}03-30 12:30:09.942 1325-1352/? I/DreamManagerService﹕ Entering dreamland.
03-30 12:30:09.942 1325-1352/? I/PowerManagerService﹕ Dreaming...
03-30 12:30:09.942 1325-1347/? I/DreamController﹕ Starting dream: name=ComponentInfo{com.google.android.deskclock/com.android.deskclock.Screensaver}, isTest=false, canDoze=false, userId=0
03-30 12:30:14.993 1500-1500/? D/PhoneStatusBar﹕ disable: < expand icons alerts system_info back home RECENT* clock SEARCH* >
なるほど、パーミッションが足りないようです。
パーミッションを追加してみるものの、結果は変らずメッセージを読み直してみると"service declaration"ってしっかり書いてありますね。
念のためデベロッパーズガイドも参照してみると。
ってしっかり書いてありました。<service android:name=".MyDream" android:exported="true" android:icon="@drawable/my_icon" android:label="@string/my_dream_label" 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>
ようやくこれでAndroid 5にも対応できました。というか今まで動かなかったとか。
やっぱり実機は必要ですねぇ(笑)
0 件のコメント:
コメントを投稿