`
duoerbasilu
  • 浏览: 1486097 次
文章分类
社区版块
存档分类
最新评论

Android 自带Apps 学习---DownLoadProvider

 
阅读更多

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();
    }


分享到:
评论

相关推荐

    修改过的DownloadProvider-master

    修改过的DownloadProvider-master,方便大家使用

    Android DownloadProvider 源码详解

    主要介绍了Android DownloadProvider 源码详解的相关资料,需要的朋友可以参考下

    apk文件 DownloadProvider(电视直播视频)

    apk文件 DownloadProvider(电视直播视频)apk文件 DownloadProvider(电视直播视频)apk文件 DownloadProvider(电视直播视频)apk文件 DownloadProvider(电视直播视频)apk文件 DownloadProvider(电视直播视频)...

    安卓DownloadProvider下载文件

    android利用系统DownloadProvider实现下载,多文件多线程后台下载,有需要下载功能的可以直接导入到程序中

    DownloadProvider.apk

    DownloadProvider.apk

    Android代码-下载管理

    This project ports the DownloadProvider of Android 2.3.7. It supports Android 2.2 and above. It is standard Eclipse project, which could be open by Eclipse with the Andoird Development Tools. To ...

    使用DownloadProvider进行文件下载全攻略.pdf

    使用DownloadProvider进行文件下载全攻略.pdf

    Android Browser源码

    Android browser源代码 /android/packages/apps/browser /android/packages/providers/DownloadProvider /android/frameworks/base/core/java/android/webkit

    DownloadProvider:Porting Android2.3 DownloadProvider .DownloadManager,can pause, resume downloading.断点续传下载

    Android平台面向开发者提供了DownloadManager这个服务(service),可以用来完成下载,同时异步地得到下载进度的实时更新提示。 原生的浏览器,Android Market以及GMail等客户端都使用了该接口。 该接口也部分的提供...

    Android JPush SDK 集成文档

    Android JPush SDK 集成文档,快速集成极光推送服务功能!

    com.xunlei.downloadprovider.apk

    com.xunlei.downloadprovider.apk

    ContentProvider

    contentprovider存储,主要基于本地存储为基础,是移动开发的重要存储方式,源码已经打包,内部有详细注释。

    Download Provider Doc

    Download Provider Documentation From: http://www.netmite.com/android/mydroid/1.6/packages/providers/DownloadProvider/docs/

    MOTO XT882一键ROOT

    Browser.apk=系统自带浏览器(可删,可用其他手机浏览器替代) Calculator.apk=计算器(可删,可用其他替代) CertInstaller.apk=证书服务 (绝不能删除) ContactsProvider2_0.apk =通讯录/联系人数据存储服务 (绝...

    安卓ROM文件分析

    安卓系统文件夹及其主要文件详解 \system\app文件夹下是系统默认安装的软件 ...\system\app\Contacts.apk 联系人 \system\app\DownloadProvider.apk下载提供者 \system\app\DrmProvider. apk DRM数字版权提供

    电子市场所需应用程序

    所以还需安装 DownloadProvider.apk DownloadProviderUi.apk。如此便可基本使用电子市场了。但当应用程序出错,向电子市场发送错误报告时,电子市场会出错。所以不发送错误报告就好了。可以查找并下载应用程序就可以...

Global site tag (gtag.js) - Google Analytics