分类归档:Android

Android SSL BKS证书的生成过程

在用Android平台上使用SSL,第一步就是生成证书。

1、证书的生成

1.1生成服务器端的证书

keytool -genkey -alias test -keystore test.jks

1.2 将keystore中的cert导出来,用来生成客户端的验证证书

keytool -exportcert -alias test -file test.cert -keystore test.jks

1.3 生成Android平台的证书

read more

Android推送通知指南

在 开发Android和iPhone应用程序时,我们往往需要从服务器不定的向手机客户端即时推送各种通知消息,iPhone上已经有了比较简单的和完美的 推送通知解决方案,可是Android平台上实现起来却相对比较麻烦,最近利用几天的时间对Android的推送通知服务进行初步的研究。

在Android手机平台上,Google提供了C2DM(Cloudto Device Messaging)服务,起初我就是准备采用这个服务来实现自己手机上的推送功能。

read more

操作Android 手机通讯录数据库

// 根据ID获得联系人信息实体
private static EnContactBackUp getEnContactBackUp(String id) {
ContentResolver resolver = acApplication.getInstance()
.getContentResolver();
EnContactBackUp contact = new EnContactBackUp();
contact.setId(id);
String value = null;
// 获得昵称
Cursor cur = resolver.query(ContactsContract.Data.CONTENT_URI,
new String[] { Nickname.NAME },
ContactsContract.Data.CONTACT_ID + “=? and ”
+ ContactsContract.Data.MIMETYPE + “=?”, new String[] {
id, Nickname.CONTENT_ITEM_TYPE }, null);
while (cur.moveToNext()) {
contact.setNickName(cur.getString(0).replaceAll(“#”, “#”)
.replaceAll(“,”, “,”).replaceAll(“;”, read more

Android 程序获取、设置铃声、音量、静音、扬声器

Android 程序获取、设置铃声和音量
通过程序获取android系统手机的铃声和音量。同样,设置铃声和音量的方法也很简单!

AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
//通话音量

int max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_VOICE_CALL );
int current = mAudioManager.getStreamVolume( AudioManager.STREAM_VOICE_CALL );
Log.d(”VIOCE_CALL”, “max : ” + max + ” current : ” + current);
//系统音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_SYSTEM );
current = mAudioManager.getStreamVolume( AudioManager.STREAM_SYSTEM );
Log.d(”SYSTEM”, “max : ” + max + ” current : ” + current);
//铃声音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_RING );
read more

listview下拉刷新 上拉(滑动分页)加载更多

最 近做的类似于微博的项目中,有个Android功能要使用到listview的向下拉刷新来刷新最新消息,向上拉刷新(滑动分页)来加载更多。
新浪微博就是使用这种方式的典型。
当用户从网络上读取微博的时候,如果一下子全部加载用户未读的微博这将耗费比较长的时间,造成不好的用户体验,同时一屏的内容也不足以显示如此多的内容。这时候,我们就需要用到另一个功能,那就是listview的分页了,其实这个分页可以做成客户端的分页,也可以做成服务器端的分页(点击加载时,从服务器对应的加载第N页就好了!!!)。通过分页分次加载数据,用户看多少就去加载多少。
read more

AndroidManifest.xml文件详解(compatible-screen)

语法(SYNTAX):

<compatible-screens>
<screenandroid:screenSize=[“small” | “normal” | “large” | “xlarge”]
android:screenDensity=[“ldpi” | “mdpi” | “hdpi” | “xhdpi”] />

</compatible-screens>

包含于(CONTAINED IN):

<manifest>

说明(DESCRIPTION)):

这个元素用于指定那些屏幕配置跟应用程序是兼容的。在应用的清单中只允许有一个<compatible-screent>元素的实例,但是它能够包含多个<screen>元素。每个<screen>元素指定一个特定的跟应用程序兼容的尺寸—密度组合。

Android系统不会读取<compatible-screen>清单元素(无论是在安装的时候,还是在运行的时候)。这个元素的信息只能被外部服务使用(如Google read more

Android Intents和Intent过滤器(二)

Intent对象解析

Intent能够被分成两组:

1.   用组件的名称把Intent对象明确的指向目标组件(在Intent对象的组件名字段指定目标组件名)。因为一般情况下其他应用的开发者不会了解目标组件的名字,所以通常针对应用程序的内部消息使用明确命名的Intent对象,如一个Activity启动一个下属服务或启动一个姊妹Activity。

2.   没有命名目标(Intent对象的组件名字段是空的)的隐式的Intent对象。隐式的Intent对象经常被用于激活其他应用程序中的组件。

Android系统把一个明确命名的Intent对象发送给目标类的一个实例。除了组件名以外,不再用Intent对象内任何其他信息来判断哪个组件应该获得这个Intent对象。

对于隐式的Intent对象,需要不同的分类。在缺少目标组件的情况下,Android系统必须查找最适合的组件(一个能够执行请求动作的Activity或Service,或者是一组能够响应广播通知的Broadcast read more

AndroidManifest.xml文件详解(category)

语法(SYNTAX):

<categoryandroid:name=”string“/>

包含于(CONTAINED IN):

<intent-filter>

说明(DESCRIPTION):

给一个过滤器添加一个分类的名称。有关Intent过滤器的详细说明以及过滤器中分类规范的作用,请看Intent and Intent Filters(http://www.13com.net/site/?p=128)

属性(ATTRIBUTES):

android:name

定义分类的名称。标准的分类是在Intent类中用CATEGORY_name常量来定义的。在定义这个属性值的时候,要用“andoid.intent.category.”来代替GATEGORY_,从而实现定义与常量的关联。例如:Intent类中的常量CATEGORY_LAUNCHER,在过滤器分类中的定义是:android.intent.category.LAUNCHER。

read more

Android Intents和Intent过滤器(一)

Android应用程序有三个核心组件—Activity、Service、Broadcast Receiver,Broadcast receiver是通过叫做Intent的消息来激活的。Intent消息是同一个应用程序或不同应用程序运行后,组件间进行绑定的一种能力。Intent对象本身是一个持有要执行操作的抽象描述的无源数据结构,或者在广播的情况下,经常用它来描述一些已经发生或正在发生的事情。给每种类型组件发送Intent对象都有其独立的机制:

read more

AndroidManifest.xml文件详解(application)

语法(SYNATX):

<applicationandroid:allowTaskReparenting=["true" | "false"]
android:backupAgent="string"
android:debuggable=["true" | "false"]
android:description="string resource"
android:enabled=["true" | "false"]
android:hasCode=["true" | "false"]
android:hardwareAccelerated=["true" | "false"]
android:icon="drawable resource"
android:killAfterRestore=["true" | "false"]
android:label="string resource"
android:logo="drawable resource"
android:manageSpaceActivity="string"
android:name="string"
android:permission="string"
android:persistent=["true"
read more