2011年12月31日
Android:下载与线程控制
2011年12月29日
Android MediaPlayer:进度条、静音
2011年12月26日
Android BroadcastReceiver
关于MapReduce
Select From Amazon SimpleDB
//1. Creating a SimpleDB Client
AWSCredentials credentials = new BasicAWSCredentials( ACCESS_KEY, SECRET_KEY );
AmazonSimpleDBClient sdbClient = new AmazonSimpleDBClient( credentials);
sdbClient.setEndpoint("sdb.us-west-1.amazonaws.com"); // to define Data Center Region
//2. Select
String nextToken = null;
SelectRequest selectRequest = new SelectRequest( "select * from myDomain" ).withConsistentRead( true );
selectRequest.setNextToken( nextToken );
SelectResult response = sdbClient.select( selectRequest );
nextToken = response.getNextToken();
Android连接Amazon SimpleDB
1. 安装AWS Toolkit for Eclipse:http://aws.amazon.com/eclipse/
安装完成以后在Eclipse中增加了一个Database Development perspective视图,可以对SimpleDB进行一些简单的维护操作,通过SQL Scrapbook进行SQL查询。
2. 安装AWS SDK for Android:http://aws.amazon.com/sdkforandroid/
此SDK包含了所有的库和部分示例代码及文档,注意使用前需注册外部类库。
这样就可以象操作本地数据库一样进行SimpleDB的读写了。
Android时间同步
1. 系统函数SystemClock.setCurrentTimeMillis()用于设置系统时间,需要<uses-permission android:name="android.permission.APPROPRIATE" />权限,但是出于安全考虑,已被GOOGLE禁用。
2. 对于ROOT手机,可以用<uses-permission android:name="android.permission.WRITE_SETTINGS" />打开权限。
3. 另一个变通的方法是,先查询本地时间,再查询NTP服务器的UTC,从而得到两个时间的差值。
在多台手机之间,通过补偿差值,从而实现多台手机之间的事件同步。
Android通过NTP服务器取得UTC标准时间
1. http://hi-android.info/src/android/net/SntpClient.java.html
利用这个类调用NTP函数。
2. 通过函数client.requestTime("1.us.pool.ntp.org", 10000)获取本地时间戳。
3. 减去时区偏离值:
Calendar c = Calendar.getInstance();
int zoneOffset = c.get(java.util.Calendar.ZONE_OFFSET);
Local Time & UTC Time in Android
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar c = Calendar.getInstance();
Date date1 = c.getTime();
Dtime = fmt.format(date1);
mTextView1.setText(Dtime); // display local time
int zoneOffset = c.get(java.util.Calendar.ZONE_OFFSET);
int dstOffset = c.get(java.util.Calendar.DST_OFFSET);
c.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset));
Date date2 = c.getTime();
Dtime = fmt.format(date2);
mTextView2.setText(Dtime); // display utc time