1:判断手机是否有网络连接
手机是否是漫游状态
/**
* Returns whether the network is available
*/
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivity =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
Log.w(Constants.TAG, "couldn't get connectivity manager");
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
if (Constants.LOGVV) {
Log.v(Constants.TAG, "network is available");
}
return true;
}
}
}
}
if (Constants.LOGVV) {
Log.v(Constants.TAG, "network is not available");
}
return false;
}
/**
* Returns whether the network is roaming
*/
public static boolean isNetworkRoaming(Context context) {
ConnectivityManager connectivity =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
Log.w(Constants.TAG, "couldn't get connectivity manager");
} else {
NetworkInfo info = connectivity.getActiveNetworkInfo();
if (info != null && info.getType() == ConnectivityManager.TYPE_MOBILE) {
if (TelephonyManager.getDefault().isNetworkRoaming()) {
if (Constants.LOGVV) {
Log.v(Constants.TAG, "network is roaming");
}
return true;
} else {
if (Constants.LOGVV) {
Log.v(Constants.TAG, "network is not roaming");
}
}
} else {
if (Constants.LOGVV) {
Log.v(Constants.TAG, "not using mobile network");
}
}
}
return false;
}
2: MiMeType 和扩展名对照
MimeTypeMap.getSingleton().getExtensionFromMimeType(mimeType);
<nobr><a href="file:///D:/tools/android-sdk-windows/docs/reference/java/lang/String.html">String</a></nobr> | <nobr><span class="sympad"><a href="file:///D:/tools/android-sdk-windows/docs/reference/android/webkit/MimeTypeMap.html#getExtensionFromMimeType(java.lang.String)">getExtensionFromMimeType</a></span>(<a href="file:///D:/tools/android-sdk-windows/docs/reference/java/lang/String.html">String</a> mimeType)</nobr>
Return the registered extension for the given MIME type.
|
<nobr>static <a href="file:///D:/tools/android-sdk-windows/docs/reference/java/lang/String.html"> String</a></nobr> | <nobr><span class="sympad"><a href="file:///D:/tools/android-sdk-windows/docs/reference/android/webkit/MimeTypeMap.html#getFileExtensionFromUrl(java.lang.String)">getFileExtensionFromUrl</a></span>(<a href="file:///D:/tools/android-sdk-windows/docs/reference/java/lang/String.html">String</a> url)</nobr>
Returns the file extension or an empty string iff there is no extension.
|
<nobr><a href="file:///D:/tools/android-sdk-windows/docs/reference/java/lang/String.html">String</a></nobr> | <nobr><span class="sympad"><a href="file:///D:/tools/android-sdk-windows/docs/reference/android/webkit/MimeTypeMap.html#getMimeTypeFromExtension(java.lang.String)">getMimeTypeFromExtension</a></span>(<a href="file:///D:/tools/android-sdk-windows/docs/reference/java/lang/String.html">String</a> extension)</nobr>
Return the MIME type for the given extension.
|
<nobr>static <a href="file:///D:/tools/android-sdk-windows/docs/reference/android/webkit/MimeTypeMap.html"> MimeTypeMap</a></nobr> | <nobr><span class="sympad"><a href="file:///D:/tools/android-sdk-windows/docs/reference/android/webkit/MimeTypeMap.html#getSingleton()">getSingleton</a></span>()</nobr>
Get the singleton instance of MimeTypeMap.
|
<nobr>boolean</nobr> | <nobr><span class="sympad"><a href="file:///D:/tools/android-sdk-windows/docs/reference/android/webkit/MimeTypeMap.html#hasExtension(java.lang.String)">hasExtension</a></span>(<a href="file:///D:/tools/android-sdk-windows/docs/reference/java/lang/String.html">String</a> extension)</nobr>
Return true if the given extension has a registered MIME type.
|
<nobr>boolean</nobr> | <nobr><span class="sympad"><a href="file:///D:/tools/android-sdk-windows/docs/reference/android/webkit/MimeTypeMap.html#hasMimeType(java.lang.String)">hasMimeType</a></span>(<a href="file:///D:/tools/android-sdk-windows/docs/reference/java/lang/String.html">String</a> mimeType)</nobr>
Return true if the given MIME type has an entry in the map.
|
3:获取某个目录下可用空间块大小
base = Environment.getDownloadCacheDirectory();
stat = new StatFs(base.getPath());
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
<nobr>int</nobr> | <nobr><span class="sympad"><a href="file:///D:/tools/android-sdk-windows/docs/reference/android/os/StatFs.html#getAvailableBlocks()">getAvailableBlocks</a></span>()</nobr> The number of blocks that are free on the file system and available to applications. | ||||||||||
<nobr>int</nobr> | <nobr><span class="sympad"><a href="file:///D:/tools/android-sdk-windows/docs/reference/android/os/StatFs.html#getBlockCount()">getBlockCount</a></span>()</nobr> The total number of blocks on the file system. | ||||||||||
<nobr>int</nobr> | <nobr><span class="sympad"><a href="file:///D:/tools/android-sdk-windows/docs/reference/android/os/StatFs.html#getBlockSize()">getBlockSize</a></span>()</nobr> The size, in bytes, of a block on the file system. | ||||||||||
<nobr>int</nobr> | <nobr><span class="sympad"><a href="file:///D:/tools/android-sdk-windows/docs/reference/android/os/StatFs.html#getFreeBlocks()">getFreeBlocks</a></span>()</nobr> The total number of blocks that are free on the file system, including reserved blocks (that are not available to normal applications). | ||||||||||
<nobr>void</nobr> | <nobr><span class="sympad"><a href="file:///D:/tools/android-sdk-windows/docs/reference/android/os/StatFs.html#restat(java.lang.String)">restat</a></span>(<a href="file:///D:/tools/android-sdk-windows/docs/reference/java/lang/String.html">String</a> path)</nobr> Perform a restat of the file system referenced by this object. |
final PackageManager manager = getContext().getPackageManager();
List<ResolveInfo> activities = manager.queryIntentActivities(mainIntent, 0);
int activityCount = activities == null ? 0 : activities.size();
for (int i = 0; i < activityCount; i++) {
ResolveInfo info = activities.get(i);
String title = info.loadLabel(manager).toString();
if (TextUtils.isEmpty(title)) {
title = info.activityInfo.name;
}
String icon = getActivityIconUri(info.activityInfo);
inserter.prepareForInsert();
inserter.bind(nameCol, title);
inserter.bind(descriptionCol, description);
inserter.bind(packageCol, info.activityInfo.applicationInfo.packageName);
inserter.bind(classCol, info.activityInfo.name);
inserter.bind(iconCol, icon);
inserter.execute();
}
private String getActivityIconUri(ActivityInfo activityInfo) {
int icon = activityInfo.getIconResource();
if (icon == 0) return null;
Uri uri = getResourceUri(getContext(), activityInfo.applicationInfo, icon);
return uri == null ? null : uri.toString();
}
private static Uri getResourceUri(Context context, ApplicationInfo appInfo, int res) {
try {
Resources resources = context.getPackageManager().getResourcesForApplication(appInfo);
return getResourceUri(resources, appInfo.packageName, res);
} catch (PackageManager.NameNotFoundException e) {
return null;
} catch (Resources.NotFoundException e) {
return null;
}
private static Uri getResourceUri(Resources resources, String appPkg, int res)
throws Resources.NotFoundException {
String resPkg = resources.getResourcePackageName(res);
String type = resources.getResourceTypeName(res);
String name = resources.getResourceEntryName(res);
return makeResourceUri(appPkg, resPkg, type, name);
}
private static Uri makeResourceUri(String appPkg, String resPkg, String type, String name)
throws Resources.NotFoundException {
Uri.Builder uriBuilder = new Uri.Builder();
uriBuilder.scheme(ContentResolver.SCHEME_ANDROID_RESOURCE);
uriBuilder.encodedAuthority(appPkg);
uriBuilder.appendEncodedPath(type);
if (!appPkg.equals(resPkg)) {
uriBuilder.appendEncodedPath(resPkg + ":" + name);
} else {
uriBuilder.appendEncodedPath(name);
}
return uriBuilder.build();
}