android wallpaper机制,android-从和向WallpaperService启动意图

我有一个显示图像的动态壁纸.我在活动中更改该图像.然后,我需要通知动态壁纸,以便它知道重新加载资源.

意图似乎是完美,简单的解决方案:

Intent intent = new Intent(MyActivity.this, MyWallpaperService.class);

startService(intent);

我和MyWallpaperService中

@Override

public int onStartCommand (Intent intent, int flags, int startId) {...}

我还需要知道,在另一项服务中,用户何时点击屏幕.我使用与发送和接收意图完全相同的机制.

一切在Android 4.0设备和仿真器上都能正常运行.

但是我在Android 2.2和2.3.3模拟器上进行了测试,并得到以下错误:

java.lang.SecurityException: Not allowed to start service Intent { cmp=com.domain.name/.liveWallpaper.MyWallpaperService } without permission android.permission.BIND_WALLPAPER

我的清单在service标签内包含正确的android:permission:

android:name=".liveWallpaper.MyWallpaperService"

android:label="@string/app_name"

android:permission="android.permission.BIND_WALLPAPER" >

android:name="android.service.wallpaper"

android:resource="@xml/livewallpaper_data" />

为什么仅在旧版本(Android 2.2和2.3.3)上会出现此错误?是否禁止或建议将Intent发送到WallpaperService?它与只有系统才能绑定到具有BIND_WALLPAPER权限的服务有关吗?

最后,如果意图不起作用,替代的简单解决方案是什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值