Allove Team 致力于移动应用的开发和服务(Android,J2ME,iphone,ophone)

Linkify对象的使用——对输入String做出判断

范例介绍如何让系统自动判断输入的字符串该做的提示,如输入的电话号码,就提供电话连接;若输入的是网址,就提供Hyper Link连接。该范例的功能非常的简单,就是在TextView Widget显示连接,让手机用户点击之后,打开对应的事件程序。

在Android里面,只要使用很简单的Linkfy对象,就能够完整这个程序,Linkify对象可以让系统动态的获取,并迅速做出判断。也就是说,如果你输入的是电话号码,点下连接,马上会到拨打电话的程序,如果你输入的是Email,就回到Email的页面;如果是输入网址,那么就会自动的打开浏览器。

具体程序如下:

package com.allove;

import android.app.Activity;
import android.os.Bundle;
import android.text.util.Linkify;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class Test extends Activity {
private EditText mEditText;
private TextView mTextView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

this.Init();
mEditText.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mEditText.setText(”");
}
});
mEditText.setOnKeyListener(new EditText.OnKeyListener(){
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
mTextView.setText(mEditText.getText().toString());
Linkify.addLinks(mTextView, Linkify.PHONE_NUMBERS|
Linkify.WEB_URLS|
Linkify.EMAIL_ADDRESSES);
return false;
}
});
}

public void Init(){
mEditText=(EditText)this.findViewById(R.id.EditText01);
mTextView=(TextView)this.findViewById(R.id.TextView01);
}
}

Android取得SIM卡内的信息——TelephonyManager的应用

这里主要用到Android API的TelephonyManager对象(Android.telephony.TelephonyManager)。以下源码就该对象的几个方法展示其用途。具体源码如下:

package com.mobile.allove.wfp;

import java.util.ArrayList;

import android.app.ListActivity;
import android.app.Service;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;

public class TelephonyManagerTest extends ListActivity implements OnClickListener{
private Button showInfoButton;
private TelephonyManager mTelephonyManager;
ArrayList SIMInfo_name=null;//显示要显示的SIM信息的名称
ArrayList
SIMInfo_value=null;//显示要显示的SIM信息的名称的值
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

this.Init();
showInfoButton.setOnClickListener(this);
}
public void Init()
{
showInfoButton=(Button)this.findViewById(R.id.Button01);
mTelephonyManager=(TelephonyManager) this.getSystemService(Service.TELEPHONY_SERVICE);

SIMInfo_name=new ArrayList();
SIMInfo_value=new ArrayList
();

//首先显示SIM卡状态
SIMInfo_name.add(this.getResources().getString(R.string.SIM_state));
if(mTelephonyManager.getSimState()==TelephonyManager.SIM_STATE_READY)
{
SIMInfo_value.add(”SIM卡状态良好!”);
}
else if(mTelephonyManager.getSimState()==TelephonyManager.SIM_STATE_ABSENT)
{
SIMInfo_value.add(”SIM卡未插入!”);
}
else
{
SIMInfo_value.add(”SIM卡被锁定或未知的状态!”);
}

//SIM卡供货商代码
SIMInfo_name.add(this.getResources().getString(R.string.SIM_code));
if(mTelephonyManager.getSimSerialNumber().equals(”"))
{
SIMInfo_value.add(”SIM卡供货商代码无法取得”);
}
else
{
SIMInfo_value.add(mTelephonyManager.getSimSerialNumber());
}

//SIM卡供货商名称
SIMInfo_name.add(this.getResources().getString(R.string.SIM_factoryname));
if(mTelephonyManager.getSimOperatorName().equals(”"))
{
SIMInfo_value.add(”SIM卡供货商名称无法取得”);
}
else
{
SIMInfo_value.add(mTelephonyManager.getSimOperatorName());
}

//SIM卡国别
SIMInfo_name.add(this.getResources().getString(R.string.SIM_country));
if(mTelephonyManager.getSimCountryIso().equals(”"))
{
SIMInfo_value.add(”SIM卡国别无法取得”);
}
else
{
SIMInfo_value.add(mTelephonyManager.getSimCountryIso());
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId())
{
case R.id.Button01:
this.setListAdapter(new MyAdapter());
break;
}
}
class Holder
{
TextView name_TextView;
TextView value_TextView;
}
class MyAdapter extends BaseAdapter
{
LayoutInflater inflater;
Holder mHolder;
@Override
public int getCount() {
// TODO Auto-generated method stub
return SIMInfo_name.size();
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
inflater=LayoutInflater.from(TelephonyManagerTest.this);
if(convertView==null)
{
convertView=inflater.inflate(R.layout.item_layout,null);
mHolder=new Holder();
mHolder.name_TextView=(TextView)convertView.findViewById(R.id.item_TextView01);
mHolder.value_TextView=(TextView)convertView.findViewById(R.id.item_TextView02);
convertView.setTag(mHolder);
}
else
{
mHolder=(Holder) convertView.getTag();
}
mHolder.name_TextView.setText(SIMInfo_name.get(position));
mHolder.value_TextView.setText(SIMInfo_value.get(position));
return convertView;
}

}
}

注意加读取SIM的权限——android.permission.READ_PHONE_STATE

不远处的智能移动设备

互联网上的业务必然逐步向移动设备迁移,这也不是什么新的想法了,所以本来打算的移动联网的相关文字可以去掉了。

移动设备,更准确的说是智能移动设备,的硬件性能越来越高,价格越来越符合人们的购买力。这可以让我们很轻易的想到一个问题,那就是未来几年内移动设备和现在的PC的性能应该不相上下,无论是是CPU,RAM,还是网络I/O能力方面都将可以很轻易的目前的互联网需求,而在中国,3G网络在未来几年内也会逐渐成熟,中国的多媒体应用也会得到很好的发展,这几乎是必然的。

回到移动设备,我认为在未来几年内当其硬件水平达到一定程度的时候我们也许已经无须管买来的手机是android,还是sybiam的,还是iphone了,因为硬件必然会标准化统一化。也就是说,也许智能移动设备(如:智能手机,平板电脑)的硬件和操作系统可以分别买到,只不过有的移动设备预装了android活在windows mobile而已,当你买回家之后只需要自己随便重装就好了。

到这里,我们似乎看到Google的又一点恐怖,Android也许在未来就会统治大部分智能手机,就像现在的windows XP一样的疯狂。也许到时候你在看到雨林沐枫、番茄花园的时候就不再是windows了,而是雨林沐枫版本Android,番茄花园版本iphone,深度Sybiam。。。等等,机油们随处寻觅便是。

为什么说恐怖的是Google呢? 因为只有她的Android才有可能成为统治者,因为他开放,开放的力量是巨大的,而且他表现卓越,还有他已经十分庞大的阵营。开放的系统可以作深度的定制,就像中国移动的OMS一样,都好意思说自己的知识产权了,所以再有个番茄花园Android肯定不会被告进那里面去的。

踏破铁鞋无觅处,那人就在灯火阑珊处~~~~~

2010年我们将经历变革

信息在开始及时化,信息在开始位置化。。

我们将是历史变革的见证者,让我们一起来见证这激动人心的时刻的到来吧!

2010年01月25日分享人生

0 Comments

compute anywhere

compute with any device in the nearly future will come true

Windows XP 手机 , 你要不?

上次回重庆的时候我的老友CM说他在等一款山寨手机,装的Windows xp ,回来google下,贴出来大家看看。

官方网站:http://www.xpphone.com/Product/gongneng.html

善听–免注册版-12-28日更新

好麻烦 是不是非要登陆才能用 试用有没有时间限制?

[url=space.php?uid=51395]fengdaxia[/url]

还要手机注册,不安全呀。不定那天你就不见钱。

我们在这个版本去掉了登陆注册,Allove承诺 不会收取用户的任何费用

[url=space.php?uid=108223]谢谢网友jy02374260[/url]建议

为什么就不能有个能添加文件夹的软件呢,一首一首的添加真是要死

新增功能:
自定义本地歌曲文件夹,
自定义歌曲播放模式(循环播放,随机播放、单曲循环播放)

善听1.0.1

http://code.google.com/p/allove/downloads/list?q=label:shanting

IBM CEO:谷歌并非势不可挡 大企业不会使用

IBM CEO:谷歌并非势不可挡 大企业不会使用


在被问及“谷歌是否势不可挡”时,彭明盛回答道:“谷歌能成为企业的计算平台吗?银行会交给谷歌来运行吗?航空公司会交给谷歌来运行吗?IBM会让谷歌来运营供应链吗?印度运营商巴蒂电信会通过谷歌来运营吗?那些使用我们设备的中国银行(行情,资讯,评论系统会使用谷歌吗?我们正在参与建设的俄罗斯中央银行的网络会使用谷歌吗?不!”

Google 的云计算平台,云计算一个好东西 但绝对不可能在中国成长.. 悲哀。。

Google 定位中小企业为中小企业服务云计算,那为我们节约了不少的成本。

Christmas Wishes

《善听》是 Allove Team 送上的最真诚的圣诞祝福 , 还有下面这虔诚的祷告 :

Our Father in heaven,
Hallowed be your name.
Your kingdom come.
Your will be done
On earth as it is in heaven.
Give us this day our daily bread.
And forgive us our debts,
As we forgive our debtors.
And do not lead us into temptation,
But deliver us from the evil one.
For Yours is the kingdom and the power and
the glory forever.
Amen.

善听—android/OMS音乐播放器—–圣诞特别测试版

圣诞节快到了,是在等圣诞老人神秘礼物?还是等待享受节日狂欢的那种祥和氛围呢?如这样,来点音乐岂不美哉妙哉?音箱设备总不可能随身带吧?带了手机就可以啦!善听是Allove专为圣诞推出的一款在线音乐搜索播放软件,作为Android平台上我们推出的第一款音乐类软件,我们力求完美,打造精品,带给您别样的音乐体验!

《善听》公测圣诞特别版功能简介:
1.在线音乐搜索——随时随地搜索自己喜欢的歌曲,再也不用电脑上网去搜索啦!

2.音乐排行榜——在线自动更新排行榜,轻松掌握最新流行趋势,作个时尚音乐达人。

3.本地歌曲播放——想播放手机里面的音乐再也不用到处找文件啦!打开善听就行了!

4.自定义播放列表——把自己喜欢的音乐分个类,想听什么类型的就选择什么类型的列表。

5.歌词同步显示——歌词同步显示不再是MP3和电脑的专利啦,Android手机也可以的!

6.自定义手机铃声——不用在纠结于Android手机不能换铃声的苦恼啦,善听帮你搞定。(本版本暂时不支持)

下载地址:download

注意:本版本属于测试版 请留意我们的更新和修正  http://blog.allove.org

http://blog.allove.org/archives/shanting.html

意见反馈 :请留下您的宝贵意见

登陆界面

登陆界面

登陆界面
注册界面---注册成为善听会员-享受Allove所有服务

注册界面---注册成为善听会员-享受Allove所有服务

善听播放器--主界面

善听播放器--主界面--本地歌曲

最热门的歌曲

最热门的歌曲

播放界面

播放界面

网络歌搜索

网络歌搜索

网络歌搜索
网络歌搜索结果

网络歌搜索结果

android widget小工具

小工具 widget

返回顶部