本来从动态壁纸预览页面设置一个动态壁纸回到桌面便可以看到桌面动态壁纸,可以观察得到自己的动态壁纸是否设置成功了(必须知道设置是否成功的结构,因为还有一些操作需要完成)! 但是现在是要在自己的应用中进入
2014-09-10 23:53
1171 查看
本来从动态壁纸预览页面设置一个动态壁纸回到桌面便可以看到桌面动态壁纸,可以观察得到自己的动态壁纸是否设置成功了(必须知道设置是否成功的结构,因为还有一些操作需要完成)!
但是现在是要在自己的应用中进入到动态壁纸预览页面(去往某个动态壁纸的预览页面,那里可以设置壁纸)点击“设置壁纸”之后回到自己的应用是看不到桌面的,而且又不想直接退出自己的应用!此时该怎么得到想要的结果呢?
在LiveWallpaperPreview的setLiveWallpaper方法中有一个setResult(RESULT_OK);也就是说可以回调得到结果,所以很兴奋的尝试了一把,结果发现设置动态壁纸成功后得到的resultCode=0.这是为什么呢?经过大神指点发现,正常的路径从动态壁纸列表进入的某动态壁纸预览页面是通过类的调用,也就是同一个进程,所以回调是有效的。但是我这个从应用进入到预览页面是通过广播进入的,是跨进程的,所以是无法得到该返回码的!而预览页面也没提供该结果的接口,所以这条路是行不通的!
解决:从预览页面回到自己应用有两种可能,一种是在预览页面直接按返回键,这种情况是没有设置自己特有的动态壁纸的,而另一种是点击了“设置壁纸”再回到自己应用的,这个时候系统已经将动态壁纸设置为自己特有的动态壁纸了,所以此时自己的动态壁纸已经在运行了。所以我只要从预览页面回到自己应用判断自己的动态壁纸是否已经运行了就可以知道设置壁纸是否成功了!(判断一个动态壁纸是否已经在运行)
以回调方式去往动态壁纸预览页面
Java代码
/**
* 去往某个动态壁纸的预览页面,那里可以设置壁纸
*
* @param context
* @param packageName
* 动态壁纸的包名
* @param classFullName
* 动态壁纸service类的类全名
*/
@SuppressLint("InlinedApi")
public static void startLiveWallpaperPrevivew(Activity activity, String packageName, String classFullName) {
ComponentName componentName = new ComponentName(packageName, classFullName);
Intent intent = new Intent(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);
intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, componentName);
activity.startActivityForResult(intent, Configs.REQUEST_SET_LIVE_WALLPAPER);
}
回到自己应用时判断自己的动态壁纸是否正在运行
Java代码
/**
* 判断一个动态壁纸是否已经在运行
*
* @param context
* :上下文
* @param tagetPackageName
* :要判断的动态壁纸的包名
* @return
*/
public static boolean isLiveWallpaperRunning(Context context, String tagetPackageName) {
WallpaperManager wallpaperManager = WallpaperManager.getInstance(context);// 得到壁纸管理器
WallpaperInfo wallpaperInfo = wallpaperManager.getWallpaperInfo();// 如果系统使用的壁纸是动态壁纸话则返回该动态壁纸的信息,否则会返回null
if (wallpaperInfo != null) { // 如果是动态壁纸,则得到该动态壁纸的包名,并与想知道的动态壁纸包名做比较
String currentLiveWallpaperPackageName = wallpaperInfo.getPackageName();
if (currentLiveWallpaperPackageName.equals(tagetPackageName)) {
return true;
}
}
return false;
}
返回到自己应用回调判断
Java代码
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == Configs.REQUEST_SET_LIVE_WALLPAPER) {
if (isLiveWallpaperRunning(context,tagetPackageName)) {
//do something
}
}
super.onActivityResult(requestCode, resultCode, data);
}
转帖:http://flycatdeng.iteye.com/blog/2104483
但是现在是要在自己的应用中进入到动态壁纸预览页面(去往某个动态壁纸的预览页面,那里可以设置壁纸)点击“设置壁纸”之后回到自己的应用是看不到桌面的,而且又不想直接退出自己的应用!此时该怎么得到想要的结果呢?
在LiveWallpaperPreview的setLiveWallpaper方法中有一个setResult(RESULT_OK);也就是说可以回调得到结果,所以很兴奋的尝试了一把,结果发现设置动态壁纸成功后得到的resultCode=0.这是为什么呢?经过大神指点发现,正常的路径从动态壁纸列表进入的某动态壁纸预览页面是通过类的调用,也就是同一个进程,所以回调是有效的。但是我这个从应用进入到预览页面是通过广播进入的,是跨进程的,所以是无法得到该返回码的!而预览页面也没提供该结果的接口,所以这条路是行不通的!
解决:从预览页面回到自己应用有两种可能,一种是在预览页面直接按返回键,这种情况是没有设置自己特有的动态壁纸的,而另一种是点击了“设置壁纸”再回到自己应用的,这个时候系统已经将动态壁纸设置为自己特有的动态壁纸了,所以此时自己的动态壁纸已经在运行了。所以我只要从预览页面回到自己应用判断自己的动态壁纸是否已经运行了就可以知道设置壁纸是否成功了!(判断一个动态壁纸是否已经在运行)
以回调方式去往动态壁纸预览页面
Java代码
/**
* 去往某个动态壁纸的预览页面,那里可以设置壁纸
*
* @param context
* @param packageName
* 动态壁纸的包名
* @param classFullName
* 动态壁纸service类的类全名
*/
@SuppressLint("InlinedApi")
public static void startLiveWallpaperPrevivew(Activity activity, String packageName, String classFullName) {
ComponentName componentName = new ComponentName(packageName, classFullName);
Intent intent = new Intent(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);
intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, componentName);
activity.startActivityForResult(intent, Configs.REQUEST_SET_LIVE_WALLPAPER);
}
回到自己应用时判断自己的动态壁纸是否正在运行
Java代码
/**
* 判断一个动态壁纸是否已经在运行
*
* @param context
* :上下文
* @param tagetPackageName
* :要判断的动态壁纸的包名
* @return
*/
public static boolean isLiveWallpaperRunning(Context context, String tagetPackageName) {
WallpaperManager wallpaperManager = WallpaperManager.getInstance(context);// 得到壁纸管理器
WallpaperInfo wallpaperInfo = wallpaperManager.getWallpaperInfo();// 如果系统使用的壁纸是动态壁纸话则返回该动态壁纸的信息,否则会返回null
if (wallpaperInfo != null) { // 如果是动态壁纸,则得到该动态壁纸的包名,并与想知道的动态壁纸包名做比较
String currentLiveWallpaperPackageName = wallpaperInfo.getPackageName();
if (currentLiveWallpaperPackageName.equals(tagetPackageName)) {
return true;
}
}
return false;
}
返回到自己应用回调判断
Java代码
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == Configs.REQUEST_SET_LIVE_WALLPAPER) {
if (isLiveWallpaperRunning(context,tagetPackageName)) {
//do something
}
}
super.onActivityResult(requestCode, resultCode, data);
}
转帖:http://flycatdeng.iteye.com/blog/2104483
相关文章推荐
- 你就是一个画家!你现在想绘制一幅画,但是你现在没有足够颜色的颜料。为了让问题简单,我们用正整数表示不同颜色的颜料。你知道这幅画需要的n种颜色的颜料,你现在可以去商店购买一些颜料,但是商店不能保证能供应所有颜色的颜料,所以你需要自己混合一些颜料。混合两种不一样的颜色A和颜色B颜料可以产生(A XOR B)这种颜色的颜料(新产生的颜料也可以用作继续混合产生新的颜色,XOR表示异或操作)。本着勤俭节约的
- 现在很多的手机应用,都可能会直接嵌入一个web页面。这样做的好处:一个是功能更新方便,维护起来容易,只需要维护服务器的页面即可,不需要更新客户端;另一个是功能通用,不仅Android可以用,iOS也可
- 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串"bccced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中
- 一个袋子里面有n个球,每个球上面都有一个号码(拥有相同号码的球是无区别的)。如果一个袋子是幸运的当且仅当所有球的号码的和大于所有球的号码的积。 例如:如果袋子里面的球的号码是{1, 1, 2, 3},这个袋子就是幸运的,因为1 + 1 + 2 + 3 > 1 * 1 * 2 * 3 你可以适当从袋子里移除一些球(可以移除0个,但是别移除完),要使移除后的袋子是幸运的。现在让你编程计算一下你可以获得
- 小易邀请你玩一个数字游戏,小易给你一系列的整数。你们俩使用这些整数玩游戏。每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字。 例如: 如果{2,1,2,7}是你有的一系列数,小易说的数字是11.你可以得到方案2+2+7 = 11.如果顽皮的小易想坑你,他说的数字是6,那么你没有办法拼凑出和为6 现在小易给你n个数,让你找出无法从n个数中选取部分求和
- 现在有这样一个问题 我把上W条数据插入表内,但是发现还有一条数据没进入表里.我想查出来是哪个数据没进去. 能用查询语句查出来吗?
- 周鸿祎,高司令 2010-09-28 00:41 27469人阅读 评论(185) 收藏 举报 还是感到有必要将自己的一些想法快速记下来。 首先是对周鸿祎新员工演讲的看法。 就说实话这一点来说,周鸿祎比很多人强。所以我比较喜欢引用他的话,确实比较实在,不装逼。 至于一个公司招人的风格,是公司自己定的,别人也无权评价。有人说周是画大饼,忽悠员工卖命。废话,难道新员工讲话还有别的目的吗? 但我不认为周的选人思路在别的公司可以通行。原因是这样的:近十几年来,我们听到很多人有类似的说法,比如我们公司不要
- myeclipse中类和方法创建时添加注释_本来自己想写一个的,但是看到有了,就复制了
- 设置一个动态的壁纸作为你的linux桌面
- 对于web api 从页面post数据到web api,如果用ajax,则可以成功上传到服务器,需要一个类来存储那些变量
- JPA学习笔记---JPA实体Bean的建立---链接上一个博文:对实体Bean中属性进行操作:保存日期类型,设置字段的长度,名字,是否为空,可以声明枚举字段;可以存放二进制数据,可以存放
- poj 3308 最小点权覆盖集, 见 胡驳涛论文里面有讲见图方法 二分图最小权点覆盖 我的想法是一个东西通过两个操作都可以完成,这些操作还可以完成其他的东西,每个操作有一个花费,现在要你选出花费最小的操作。这就是裸的模型
- 4程序员小飞原计划三天完成某个任务,现在是第三天的下午,他马上就可以做完。但是在实现功能的过程中,他越来越意识到自己原来设计中的弱点,他应该采取另一个办法,才能避免后面集成阶段的额外工作。但是他如果现在就改弦更张,那势必要影响自己原来估计的准确性,并且会花费额外的时间,这样他的老板、同事也许会因此看不起他。如果他按部就班地按既定设计完成,还要花更多时间在后续集成上,但那就不是他个人的问题了,怎么办
- writeObject可以写n个,但是readObject()却只能读一次,你做一下测试。 如果你需要序列化好几个类的话,建议你用json;或者自己写两个方法,一个是将对象转换为字符串,一个是将字符串
- Android初学------选择设置壁纸的时候可以选择自己的应用
- 网络-Netty(一)-NIO概念Channel是一个对象,可以通过它读取和写入数据。可以把它看做IO中的流。但是它和流相比还有一些不同:
- 突然想要做个新闻内容的分页,网上查了下资料,找到了一个可以用的类(代码需要自己研究下,我已经试验成功了)
- dispatch_group_async可以实现监听一组任务是否完成,完成后得到通知执行其他的操作。这个方法很有用,比如你执行三个下载任务,当三个任务都下载完成后你才通知界面说完成的了
- 去往动态壁纸的预览页面,那可以设…
- 完成一个应用,用户可以根据自己输入的地址下载网络上的图片和网页信息