2012年1月5日
Android获得mp3文件信息
public boolean GetMp3Info(String mpFullname)
{
try
{
mpFilename = "";
mpTitle = "";
mpArtist = "";
mpAlbum = "";
mpDuration = "";
mpSize = "0";
String selection = MediaStore.Audio.Media.DATA + " = ?"; // like
//String path="/mnt/sdcard/music";
String[] selectionArgs = {"/mnt" + mpFullname};
//String selection = MediaStore.Audio.Media.IS_MUSIC + "!=0";
String [] projection = {
//MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.SIZE
//MediaStore.Audio.Media.DATA, // --> Location
//MediaStore.Audio.Media.DISPLAY_NAME,
};
Cursor cursor = null;
cursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, selection, selectionArgs, null);
// Cursor cursor2 = query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null,
// null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER)
mpTitle = cursor.getString(0).toString();
mpArtist = cursor.getString(1).toString();
mpAlbum = cursor.getString(2).toString();
mpDuration = cursor.getString(3).toString();
mpSize = cursor.getString(4).toString();
//cursor.getString(5).toString();
return true;
}
catch (Exception e)
{
return false;
}
} // GetMp3Info() ends
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