壁纸自动更新(DOC)
科信软件学院
Linus/Linux课程
报告
课题名称: 壁纸自动更新 姓 名: XXXXXXXX 学 号: XXXXXXXX 手 机: XXXXXXXXXXX 专业年级: XXXXXX
一、项目名称................................................................................................................... 2 二、开发环境及工具 ........................................................................................................ 2 三、运行环境................................................................................................................... 2 四、达到目标及需求
................................................................................................. 2
五、总体设计................................................................................................................... 2 六、具体实现................................................................................................................... 3 七、运行测试................................................................................................................... 8
1
一、项目名称
“壁纸自动更新”小工具
二、开发环境及工具
Java JDK+android SDK+eclipse。
三、运行环境
Android 2.3.3及以上版本。
四、达到目标及需求分析
目前市场上android手机琳琅满目,各种手机也做得越来越有个性,越来越人性化。本工程旨在开发一款简单实用的“壁纸自动更新”服务,进一步展示用户的个性和爱好。
五、总体设计
本系统思路简介清晰,主题是一个Service服务,用户可以主动选择开启或是结束本服务,服务开启后,在后台自动运行并且每隔一段时间,自动更新手机屏幕的壁纸,充分展示用户的个性。
2
六、具体实现
1、 搭建项目环境,配置开发环境为android2.3.3版本,minSDkVersion为10,预设模拟器设置为AVD2.3.3。
2、 创建项目AlarmChangeWallpaper,包名为com.dxj.ACW。
3
3、 AlarmChangeWallpaper为主activity,用于设计显示主页面 ,主页面包
含两个按钮。“启动”和“停止”。当用户选择是,系统自动Toast相应提示。布
局文件为:
4
效果图为:
主activity文件为:
package com.dxj.ACW;
import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.app.Service; import android.content.Intent; import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; import android.widget.Toast;
public class AlarmChangeWallpaper extends Activity
{
// 定义AlarmManager对象
Button start, stop;
AlarmManager aManager;
@Override
5
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
start = (Button) findViewById(R.id.start);
stop = (Button) findViewById(R.id.stop);
aManager=(AlarmManager)getSystemService(Service.ALARM_SERVICE)
;
//制定启动ChangeService组件
Intent intent= new
Intent(AlarmChangeWallpaper.this,ChangeService.class);
//创建PendingIntent对象,推迟实现的intent
final PendingIntent
pi=PendingIntent.getService(AlarmChangeWallpaper.this, 0, intent, 0);
start.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
//设置每隔5秒执行pi代
的组件一次
aManager.setRepeating(AlarmManager.RTC_WAKEUP, 0, 5000, pi);
start.setEnabled(false);
stop.setEnabled(true);
Toast.makeText(AlarmChangeWallpaper.this, "壁纸定时更换自动
成功啦", 5000).show();
}
});
stop.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
start.setEnabled(true);
stop.setEnabled(false);
Toast.makeText(AlarmChangeWallpaper.this, "服务已取消",
5000).show();
//取消对pi的调度
aManager.cancel(pi);
}
});
}
}
6
4、 服务功能,服务功能单独设置一个java文件继承service。当服务启动时,服务自动在后台运行,每隔五秒,从预设的图片数组中选择一张,设置为屏幕壁纸。具体代码如下:
package com.dxj.ACW;
import android.app.Activity; import android.app.AlarmManager; import android.app.Service; import android.app.WallpaperManager; import android.content.Intent; import android.os.Bundle;
import android.os.IBinder;
import android.widget.Button;
public class ChangeService extends Service
{
// 定义定时更换的壁纸资源
int[] wallpapers = new int[]
{ R.drawable.shanshui, R.drawable.yuanlin, R.drawable.jianzhu,
R.drawable.minzu };
// 定义系统的壁纸管理服务
WallpaperManager wManager;
// 定义当前所显示的壁纸
int current = 0;
@Override
public void onStart(Intent intent, int startId)
{
// 如果到了最后一张,系统从头开始
if (current >= 4)
{
current = 0;
}
try
{
// 改变壁纸
wManager.setResource(wallpapers[current++]);
} catch (Exception e)
{
e.printStackTrace();
}
super.onStart(intent, startId);
}
7
@Override
public void onCreate()
{
super.onCreate();
// 初始化WallpaperManager
wManager = WallpaperManager.getInstance(this);
}
@Override
public IBinder onBind(Intent intent)
{
return null;
}
}
5,在androidManifest.xml中配置权限,即添加
七、运行测试
测试分为android模拟器测试即android手机测试,测试项目的课运行性,稳定性,安全性即可使用性等。
8