当前位置:  编程技术>移动开发
本页文章导读:
    ▪装置C8500开发应用程序        设备C8500开发应用程序 今天尝试把我的C8500的ADB调试开启,发现无论怎么样都无法连上,发现该设备最终被认为是一个存储设备。看来设备的驱动安装 不成功,只是USB 存储驱动安装成功了。.........
    ▪ 大局定时器AlarmManager(1)        全局定时器AlarmManager(1) 前面介绍的时间服务的作用域都是应用程序,也就是说,将当前的应用程序关闭后,时间服务就会停止。但在很多时候,需要时间服务不依赖应用程序而存在。.........
    ▪ NotificationManager跟Notification的使用总结       NotificationManager和Notification的使用总结 1)、使用系统定义的Notification以下是使用示例代码://创建一个NotificationManager的引用String ns = Context.NOTIFICATION_SERVICE;NotificationManager mNotificationManager = (No.........

[1]装置C8500开发应用程序
    来源: 互联网  发布时间: 2014-02-18
设备C8500开发应用程序
今天尝试把我的C8500的ADB调试开启,发现无论怎么样都无法连上,发现该设备最终被认为是一个存储设备。看来设备的驱动安装 不成功,只是USB 存储驱动安装成功了。
于是就开始更新驱动,在网上搜索了半天,官网上也看了,没发现相应的驱动下载,最后终于在设备的存储里面找到了驱动程序。
卸载原先的MASS storage驱动,重现点击安装驱动。连接上USB数据线,ADB顺利找到设备。


看来求人不如求己,多想想自己所拥有的,说不定想要的就在身边。

    
[2] 大局定时器AlarmManager(1)
    来源: 互联网  发布时间: 2014-02-18
全局定时器AlarmManager(1)
前面介绍的时间服务的作用域都是应用程序,也就是说,将当前的应用程序关闭后,时间服务就会停止。但在很多时候,需要时间服务不依赖应用程序而存在。也就是说,虽然是应用程序启动的服务,但即使将应用程序关闭,服务仍然可以正常运行。

为了达到服务与应用程序独立的目的,需要获得AlarmManager对象。该对象需要通过如下代码获得:
AlarmManager alarmManager = (AlarmManager)
getSystemService(Context.ALARM_SERVICE);

AlarmManager类的一个非常重要的方法是setRepeating,通过该方法,可以设置执行时间间隔和相应的动作。setRepeating方法的定义如下:
public void setRepeating(int type, long triggerAtTime,
long interval, PendingIntent operation);

setRepeating方法有4个参数,这些参数的含义如下:

type:表示警报类型,一般可以取的值是AlarmManager.RTC和AlarmManager.RTC_WAKEUP。如果将type参数值设为AlarmManager.RTC,表示是一个正常的定时器,如果将type参数值设为AlarmManager.RTC_WAKEUP,除了有定时器的功能外,还会发出警报声(例如,响铃、震动)。

triggerAtTime:第1次运行时要等待的时间,也就是执行延迟时间,单位是毫秒。

interval:表示执行的时间间隔,单位是毫秒。

operation:一个PendingIntent对象,表示到时间后要执行的操作。PendingIntent与Intent类似,可以封装Activity、BroadcastReceiver和Service。但与Intent不同的是,PendingIntent可以脱离应用程序而存在。

从setRepeating方法的4个参数可以看出,使用setRepeating方法最重要的就是创建PendingIntent对象。例如,在下面的代码中用PendingIntent指定了一个Activity。
Intent intent = new Intent(this, MyActivity.class); 
PendingIntent pendingActivityIntent = PendingIntent.
getActivity(this, 0,intent, 0);

在创建完PendingIntent对象后,就可以使用setRepeating方法设置定时器了,代码如下:
AlarmManager alarmManager = (AlarmManager)
getSystemService(Context.ALARM_SERVICE); 
alarmManager.setRepeating(AlarmManager.RTC,
0, 5000, pendingActivityIntent);

执行上面的代码,即使应用程序关闭后,每隔5秒,系统仍然会显示MyActivity。如果要取消定时器,可以使用如下代码:
alarmManager.cancel(pendingActivityIntent);

运行本节的例子,界面如图8.20所示。单击【GetActivity】按钮,然后关闭当前应用程序,会发现系统5秒后会显示MyActivity。关闭MyActivity后,在5秒后仍然会再次显示MyActivity。

本节只介绍了如何用PendingIntent来指定Activity,读者在实例50和实例51中将会看到利用BroadcastReceiver和Service执行定时任务。

实例50:定时更换壁纸

工程目录:src\ch08\ch08_changewallpaper

使用AlarmManager可以实现很多有趣的功能。本例中将实现一个可以定时更换手机壁纸的程序。在编写代码之前,先来看一下如图8.21所示的效果。单击【定时更换壁纸】按钮后,手机的壁纸会每隔5秒变换一次。

本例使用Service来完成更换壁纸的工作,下面先编写一个Service类,代码如下:
package net.blogjava.mobile; 

import java.io.InputStream; 
import android.app.Service; 
import android.content.Intent; 
import android.os.IBinder; 

public class ChangeWallpaperService extends Service 

    private static int index = 0; 
    //  保存res\raw目录中图像资源的ID 
    private int[] resIds = new int[]{ R.raw.wp1,
R.raw.wp2, R.raw.wp3, R.raw.wp4, R.raw.wp5}; 
    @Override 
    public void onStart(Intent intent, int startId) 
    { 
        if(index == 5) 
            index = 0; 
        //  获得res\raw目录中图像资源的InputStream对象 
        InputStream inputStream = getResources().
openRawResource(resIds[index++]); 
        try 
        { 
            //  更换壁纸 
            setWallpaper(inputStream); 
        } 
        catch (Exception e) 
        { 
        } 
        super.onStart(intent, startId); 
    } 
    @Override 
    public void onCreate() 
    { 
        super.onCreate(); 
    } 
    @Override 
    public IBinder onBind(Intent intent) 
    { 
        return null; 
    } 
}

    
[3] NotificationManager跟Notification的使用总结
    来源: 互联网  发布时间: 2014-02-18
NotificationManager和Notification的使用总结
1)、使用系统定义的Notification
以下是使用示例代码:

//创建一个NotificationManager的引用

String ns = Context.NOTIFICATION_SERVICE;

NotificationManager mNotificationManager = (NotificationManager)getSystemService(ns);

//定义Notification的各种属性

int icon = R.drawable.icon; //通知图标

CharSequence tickerText = "Hello"; //状态栏显示的通知文本提示

long when = System.currentTimeMillis(); //通知产生的时间,会在通知信息里显示

//用上面的属性初始化Nofification

Notification notification = new Notification(icon,tickerText,when);

/*

* 添加声音

* notification.defaults |=Notification.DEFAULT_SOUND;

* 或者使用以下几种方式

* notification.sound = Uri.parse("file:///sdcard/notification/ringer.mp3");

* notification.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6");

* 如果想要让声音持续重复直到用户对通知做出反应,则可以在notification的flags字段增加"FLAG_INSISTENT"

* 如果notification的defaults字段包括了"DEFAULT_SOUND"属性,则这个属性将覆盖sound字段中定义的声音

*/

/*

* 添加振动

* notification.defaults |= Notification.DEFAULT_VIBRATE;

* 或者可以定义自己的振动模式:

* long[] vibrate = {0,100,200,300}; //0毫秒后开始振动,振动100毫秒后停止,再过200毫秒后再次振动300毫秒

* notification.vibrate = vibrate;

* long数组可以定义成想要的任何长度

* 如果notification的defaults字段包括了"DEFAULT_VIBRATE",则这个属性将覆盖vibrate字段中定义的振动

*/

/*

* 添加LED灯提醒

* notification.defaults |= Notification.DEFAULT_LIGHTS;

* 或者可以自己的LED提醒模式:

* notification.ledARGB = 0xff00ff00;

* notification.ledOnMS = 300; //亮的时间

* notification.ledOffMS = 1000; //灭的时间

* notification.flags |= Notification.FLAG_SHOW_LIGHTS;

*/

/*

* 更多的特征属性

* notification.flags |= FLAG_AUTO_CANCEL; //在通知栏上点击此通知后自动清除此通知

* notification.flags |= FLAG_INSISTENT; //重复发出声音,直到用户响应此通知

* notification.flags |= FLAG_ONGOING_EVENT; //将此通知放到通知栏的"Ongoing"即"正在运行"组中

* notification.flags |= FLAG_NO_CLEAR; //表明在点击了通知栏中的"清除通知"后,此通知不清除,

* //经常与FLAG_ONGOING_EVENT一起使用

* notification.number = 1; //number字段表示此通知代表的当前事件数量,它将覆盖在状态栏图标的顶部

* //如果要使用此字段,必须从1开始

* notification.iconLevel = ; //

*/

//设置通知的事件消息

Context context = getApplicationContext(); //上下文

CharSequence contentTitle = "My Notification"; //通知栏标题

CharSequence contentText = "Hello World!"; //通知栏内容

Intent notificationIntent = new Intent(this,Main.class); //点击该通知后要跳转的Activity

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

notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

//把Notification传递给NotificationManager

mNotificationManager.notify(0,notification);


如果想要更新一个通知,只需要在设置好notification之后,再次调用 setLatestEventInfo(),然后重新发送一次通知即可,即再次调用notify()。

(2)、使用自定义的Notification
要创建一个自定义的Notification,可以使用RemoteViews。要定义自己的扩展消息,首先要初始化一个RemoteViews对象,然后将它传递给Notification的contentView字段,再把PendingIntent传递给contentIntent字段。以下示例代码是完整步骤:

//1、创建一个自定义的消息布局 view.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent" android:layout_height="fill_parent">

<ImageView android:id="@+id/image" android:layout_width="wrap_content"

android:layout_height="fill_parent" android:layout_marginRight="10dp" />

<TextView android:id="@+id/text" android:layout_width="wrap_content"

android:layout_height="fill_parent" android:textColor="#000" />

</LinearLayout>

//2、在程序代码中使用RemoteViews的方法来定义image和text。然后把RemoteViews对象传到contentView字段

RemoteViews contentView = new RemoteViews(getPackageName(),R.layout.view);

contentView.setImageViewResource(R.id.image,R.drawable.icon);

contentView.setTextViewText(R.id.text,”Hello,this message is in a custom expanded view”);

notification.contentView = contentView;

//3、为Notification的contentIntent字段定义一个Intent(注意,使用自定义View不需要setLatestEventInfo()方法)

Intent notificationIntent = new Intent(this,Main.class);

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

notification.contentIntent = contentIntent;

//4、发送通知

mNotificationManager.notify(2,notification);

//以下是全部示例代码

//创建一个NotificationManager的引用

String ns = Context.NOTIFICATION_SERVICE;

NotificationManager mNotificationManager = (NotificationManager)getSystemService(ns);

//定义Notification的各种属性

int icon = R.drawable.icon; //通知图标

CharSequence tickerText = "Hello"; //状态栏显示的通知文本提示

long when = System.currentTimeMillis(); //通知产生的时间,会在通知信息里显示

//用上面的属性初始化Nofification

Notification notification = new Notification(icon,tickerText,when);

RemoteViews contentView = new RemoteViews(getPackageName(),R.layout.view);

contentView.setImageViewResource(R.id.image, R.drawable.iconempty);

contentView.setTextViewText(R.id.text, "Hello,this is JC");

notification.contentView = contentView;

Intent notificationIntent = new Intent(this,Main.class);

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

notification.contentIntent = contentIntent;

//把Notification传递给NotificationManager

mNotificationManager.notify(0,notification);


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
javascript开源软件 iis7站长之家
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3