Android 使用SAX操作XML

作者: samool    分类: Develop    发布时间: 07-09 11:33    浏览次数:     1 条留言

在android平台下操作xml方式有很多种,常见的为SAX(Simple APIfor XML)和DOM(Document Object Model)。

 SAX操作xml的特点是当读取xml文件的时候会随时触发事件,通过事件来处理当前读取到的内容。这一点是跟dom有所不同的,dom是全部读取完后在进行操作。

现在这个实例是以SAX进行XML操作的!

这个例子是读取Google的天气预报为例子做成了,使用的XML地址如下:

http://www.google.com/ig/api?weather=beijing&hl=zh-cn 

通过互联网获取天气的XML代码,然后再通过SAX进行读取:

在例子中只是读取了当前的时时天气,没有对预报的内容进行读取,等以后再完善吧:

首先根据XML文件抽象出一个类来,我获取到的XML代码如下: 

查看更多内容...

Android 获取正在运行的任务和服务

作者: samool    分类: Develop    发布时间: 07-09 11:30    浏览次数:     无留言

要获取正在运行的任务,首先需要声明一个活动对象管理器(ActivityManager) 所有的活动任务都属于此,然后通过获取服务可以得到所有的活动对象,然后通过活动对象可以得到所有运行的任务和服务,当然要获取服务和任务是使用不同的方法,但是方式是一样的。下面是获取代码:

voidgetTask() {

ActivityManager activityManager;
try{
activityManager
=(ActivityManager)this
.getSystemService(ACTIVITY_SERVICE);

arylistTask
=newArrayList<String>();



List
<ActivityManager.RunningTaskInfo>mRunningTasks=

activityManager.getRunningTasks(
30);//30表示获取的最大数

/*以循环及baseActivity方式取得任务名称与ID*/

for(RunningTaskInfo amTask : mRunningTasks)
{
Log.d(
"TaskInfo", amTask.baseActivity.getClassName()+"("+amTask.id+")");
}

//获取服务
List<RunningServiceInfo>mserviceTasks=

activityManager.getRunningServices(
30);
/*以循环方式取得任务名称与ID*/
for(RunningServiceInfo serinfo : mserviceTasks)
{
Log.d(
"TaskServerInfo", serinfo.process+"("+serinfo.pid+")");
}
}

catch(Exception e)

{



}

 以上的代码全部输出到Log中,没有进行显示!

android将程序快捷方式添加到“添加快捷方式窗口”

作者: samool    分类: Develop    发布时间: 07-09 11:24    浏览次数:     无留言

不直接添加到桌面中,而是添加到添加快捷方式窗口中

voidsetshortCut() {

Intent addShortcut
=newIntent();
//设置快捷方式的名字
addShortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,"快捷方式练习");
//构建快捷方式中专门的图标
Parcelable icon=Intent.ShortcutIconResource.fromContext(
ShortcutTest.
this, R.drawable.icon);
//添加快捷方式图标
addShortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
//构建快捷方式执行的Intent
Intent mailto=newIntent(this, ShortcutTest.class);
//添加快捷方式Intent
addShortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, mailto);
//正常
setResult(RESULT_OK, addShortcut);

}

 2010123014595192.png

Android 向桌面添加快捷方式

作者: samool    分类: Develop    发布时间: 07-09 11:21    浏览次数:     无留言

向桌面添加一个快捷方式

privatevoidaddShortcut(){
Intent shortcut
=newIntent("com.android.launcher.action.INSTALL_SHORTCUT");

//快捷方式的名称
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));
//shortcut.putExtra("duplicate", false);//不允许重复创建

//指定当前的Activity为快捷方式启动的对象: 如 com.everest.video.VideoPlayer
//注意: ComponentName的第二个参数必须加上点号(.),否则快捷方式无法启动相应程序
//ComponentName comp = new ComponentName(this.getPackageName(), "."+this.getLocalClassName());

//shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp));
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT,newIntent(this,ShortcutTest.class));

//快捷方式的图标
ShortcutIconResource iconRes=Intent.ShortcutIconResource.fromContext(this, R.drawable.icon);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);

sendBroadcast(shortcut);
}

   shortcut.putExtra("duplicate", false); //表示的为不允许重复设置

此种代码,直接添加到桌面上,并且也在上图所示的地方显示,但是此需要添加下面的权限: 

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />  

Android 控制情景模式

作者: samool    分类: Develop    发布时间: 07-09 11:19    浏览次数:     无留言

情景模式的设置大家应当相当熟悉了,但是在Android中如何通过自己的程序进行情景模式的设置呢,情景模式分为多种多种,即可以使用系统自带的,也可以使用自定义的,但是在开发某些程序时,可能需要在程序中更改情景模式,那么此就需要进行情景模式的设置。下面简单介绍一下情况模式的设置方式:

首先获取当前的情景模式:

voidgetInitring(AudioManager audio)
{
//取得手机的初始音量,并初始化进度条
intvolume=audio.getStreamVolume(AudioManager.STREAM_RING);//取得初始音量
//取得初始模式,并分别设置图标
intmode=audio.getRingerMode();//取得初始模式
}

 通过此代码,当然需要再加工一下,那么就可以得到当前的情景模式,为以后的设置做一下准备,然后也可能知道要不要再次设置。 

查看更多内容...

Android NotificationManager与Notification通知栏 的使用

作者: samool    分类: Develop    发布时间: 07-09 11:16    浏览次数:     无留言

有时候我们在后台运行程序,但是需要给用户一个提示,在这个时候就需要使用提示信息了,即在提示栏显示一个图标或者是文字提醒用户。下面是实现的代码: 

protectedvoidshowNotification(intid) {
CharSequence from
="定位服务";
CharSequence message
="正在运行";

Intent intent
=newIntent();

PendingIntent contentIntent
=PendingIntent.getActivity(this,0,
intent,
0);


notif.icon
=id;
notif.setLatestEventInfo(
this, from, message, contentIntent);


NotificationManager nm
=(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
nm.notify(R.string.app_name, notif);


}

 

查看更多内容...

Android 使用Sqlite管理数据库

作者: samool    分类: Develop    发布时间: 07-09 11:14    浏览次数:     无留言

一般在开发程序中,经常使用数据的存储功能,如在使用Delphi开发程序时,存储程序的简单设置的INI文件,在C#开发中有时也需要存储简单的设置,个人一般存储在XML中,也在INI中存储过,但是不如XML使用方便,那么这些都是简单的数据存储功能,在Android中也支持这样的文件存储,但是现在这里主要说的还是使用SQLite存储数据,SQLite是一种跨平台的数据库,是单文件式的,如咱们平常见的最多的Access数据库,但是他有比Access更好的平台支持,并且支持分页,现在主要是用于嵌入式的开发。

查看更多内容...

android 实现OpenfileDialog文件浏览功能

作者: samool    分类: Develop    发布时间: 07-09 11:11    浏览次数:     无留言

当时想怎么能实现fileDialog的功能呢,打开文件,浏览文件,然后选择文件呢,查了好多资料,也看了不少论坛,都说里面没有这个功能,那真是奇怪了,里面没有这个功能,当然就需要自己动手添加这个功能了。首先说一下这个文件浏览的简单实现原理:首先选择一个目录做为根目录,然后打开此目录,常用的就是使用File这个类了,如下:

File file=new File(path);

然后可以通过获取到此目录下所有文件及文件夹的列表:

如下:

File[]  files = file.listFiles();

然后再根据根据得到的文件,来判断是文件夹还是文件,如果是文件夹,那么我们就将文件夹添加到列表中,如果是文件那么就把文件添加到列表中进行显示,如果需要显示图标的话,那么就需要根据文件的后缀,设置不同的图标了。我是在ListView中进行显示的。

查看更多内容...

Android 监视电池状态

作者: samool    分类: Develop    发布时间: 07-09 11:09    浏览次数:     无留言

最近在开发一个与GPS相关的项目,因为其中涉及到了GPS的使用,众所周知,GPS是相当耗电的,因此就想着怎么能知道当前的电量,并且在电量达到一个下限的时候,及时提醒给用户,以根据情况关闭GPS,节省电量,以备电话急用,后来查资料,看API,终于找到了方法,怎么来监视电量,根据电量的变化来获取当前的电量多少,并且根据其它状态综合对手机进行管理,以达到管理最优的状态。

    下面是代码:

privateBroadcastReceiver mBatInfoReceiver=newBroadcastReceiver() {
intintLevel=0;
intintScale=0;

publicvoidonReceive(Context context, Intent intent) {
String action
=intent.getAction();
/*
* 如果捕捉到的action是ACTION_BATTERY_CHANGED, 就运行onBatteryInfoReceiver()
*/
if(Intent.ACTION_BATTERY_CHANGED.equals(action)) {
intLevel
=intent.getIntExtra("level",0);
intScale
=intent.getIntExtra("scale",100);

//电池伏数
Log.d("Battery V",""+intent.getIntExtra("voltage",0));
//电池温度
Log.d("Battery T",""+intent.getIntExtra("temperature",0));
BatteryV
="当前电压为:"+intent.getIntExtra("voltage",0);
BatteryT
="当前温度为:"+intent.getIntExtra("temperature",0);

switch(intent.getIntExtra("status",
BatteryManager.BATTERY_STATUS_UNKNOWN)) {
caseBatteryManager.BATTERY_STATUS_CHARGING:
BatteryStatus
="充电状态";
break;
caseBatteryManager.BATTERY_STATUS_DISCHARGING:
BatteryStatus
="放电状态";
break;
caseBatteryManager.BATTERY_STATUS_NOT_CHARGING:
BatteryStatus
="未充电";
break;
caseBatteryManager.BATTERY_STATUS_FULL:
BatteryStatus
="充满电";
break;
caseBatteryManager.BATTERY_STATUS_UNKNOWN:
BatteryStatus
="未知道状态";
break;
}
switch(intent.getIntExtra("plugged",
BatteryManager.BATTERY_PLUGGED_AC)) {
caseBatteryManager.BATTERY_PLUGGED_AC:
BatteryStatus2
="AC充电";
break;
caseBatteryManager.BATTERY_PLUGGED_USB:
BatteryStatus2
="USB充电";
break;
}

switch(intent.getIntExtra("health",
BatteryManager.BATTERY_HEALTH_UNKNOWN)) {
caseBatteryManager.BATTERY_HEALTH_UNKNOWN:
BatteryTemp
="未知错误";
break;
caseBatteryManager.BATTERY_HEALTH_GOOD:
BatteryTemp
="状态良好";
break;
caseBatteryManager.BATTERY_HEALTH_DEAD:
BatteryTemp
="电池没有电";
break;
caseBatteryManager.BATTERY_HEALTH_OVER_VOLTAGE:
BatteryTemp
="电池电压过高";
break;
caseBatteryManager.BATTERY_HEALTH_OVERHEAT:
BatteryTemp
="电池过热";
break;
}

}
}

};

 这些信息就是监听广播,根据广播的信息进行判断,如果是电量变化的广播,那么就根据这些信息,更新数据,从而进行分析!

Android 防止手机休眠

作者: samool    分类: Develop    发布时间: 07-09 11:05    浏览次数:     无留言

在开发Android程序时,有时候在程序运行的时候,不能让系统休眠,否则有一些运行会停止,因此我们需要设置禁止休眠,有两种方式:一种是添加权限,别一种是代码中设置,建议使用第一种方式,这样,在安装程序的时候会进行提醒:

第一种方式:
在Manifest.xml文件里面用user-permission声明
名称为:android.permission.WAKE_LOCK

第二种方式:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);  
把这段代码加在setContentView(R.layout.main)之前即可