a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統(tǒng) > Android > 正文

android實(shí)現(xiàn)藍(lán)牙文件發(fā)送的實(shí)例代碼,支持多種機(jī)型

2020-04-11 11:58:11
字體:
供稿:網(wǎng)友

最近項(xiàng)目上需要實(shí)現(xiàn)藍(lán)牙傳輸apk的一個(gè)功能,能夠搜索周圍的藍(lán)牙手機(jī)并分享文件。從需求上講android手機(jī)自帶的藍(lán)牙傳輸模塊就可以滿足需要了,實(shí)現(xiàn)也很簡單。不過讓人頭疼的是,雖然說一般的主流機(jī)型都配置有藍(lán)牙模塊,但是android機(jī)型碎片化太嚴(yán)重,不同android版本手機(jī)藍(lán)牙功能也不一樣。4.0.3以下版本和以上版本使用的藍(lán)牙包是不同的,分別是"com.android.bluetooth"和"com.mediatek.bluetooth"。還有一些廠商對藍(lán)牙模塊進(jìn)行的定制修改,比如華為的c8812。另外,android藍(lán)牙功能是api5以上才有的,所以android的minSdkVersion要不低于5才行。

網(wǎng)上很多android調(diào)用藍(lán)牙發(fā)送模塊的例子,完整并且能夠兼容多系統(tǒng)的例子很少,這里發(fā)一個(gè)我用在項(xiàng)目中的例子。

復(fù)制代碼 代碼如下:

     /**
     * 通過藍(lán)牙發(fā)送文件
     */
    private void sendFile(Activity activity) {
        PackageManager localPackageManager = activity.getPackageManager();
        Intent localIntent = null;

        HashMap<String, ActivityInfo> localHashMap = null;

        try {
            localIntent = new Intent();
            localIntent.setAction(Intent.ACTION_SEND);
            File file = new File(TAExternalOverFroyoUtils.getDiskCacheDir(this,
                    Constants.DOWNLOAD_DIR).getAbsolutePath(),
                    TextUtils.genApkName(worm.getWormid()));
            localIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
            // localIntent.putExtra(Intent.EXTRA_STREAM,
            // Uri.fromFile(new File(localApplicationInfo.sourceDir)));
            localIntent.setType("*/*");
            List<ResolveInfo> localList = localPackageManager.queryIntentActivities(
                    localIntent, 0);
            localHashMap = new HashMap<String, ActivityInfo>();
            Iterator<ResolveInfo> localIterator1 = localList.iterator();
            while (localIterator1.hasNext()) {
                ResolveInfo resolveInfo = (ResolveInfo) localIterator1.next();
                ActivityInfo localActivityInfo2 = resolveInfo.activityInfo;
                String str = localActivityInfo2.applicationInfo.processName;
                if (str.contains("bluetooth"))
                    localHashMap.put(str, localActivityInfo2);
            }
        } catch (Exception localException) {
            ToastHelper.showBlueToothSupportErr(activity);
        }
        if (localHashMap.size() == 0)
            ToastHelper.showBlueToothSupportErr(activity);
        ActivityInfo localActivityInfo1 = (ActivityInfo) localHashMap
                .get("com.android.bluetooth");
        if (localActivityInfo1 == null) {
            localActivityInfo1 = (ActivityInfo) localHashMap
                    .get("com.mediatek.bluetooth");
        }
        if (localActivityInfo1 == null) {
            Iterator<ActivityInfo> localIterator2 = localHashMap.values().iterator();
            if (localIterator2.hasNext())
                localActivityInfo1 = (ActivityInfo) localIterator2.next();
        }
        if (localActivityInfo1 != null) {
            localIntent.setComponent(new ComponentName(
                    localActivityInfo1.packageName, localActivityInfo1.name));
            activity.startActivityForResult(localIntent, 4098);
            return;
        }
        ToastHelper.showBlueToothSupportErr(activity);
    }

效果:

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 午夜视频在线播放 | 91蜜桃视频 | 成人夜晚看av| 成人免费视频网站在线看 | 久久成人精品视频 | 亚洲精品欧美 | 日韩中文字幕视频在线观看 | 国产精品亚洲欧美日韩一区在线 | 成人免费在线看片 | 亚洲精品在线观看免费 | 又大又粗又长又黄视频 | 日韩国产在线观看 | 亚洲一区二区三区观看 | 亚洲天堂美女视频 | 国产一区亚洲 | 成人免费视频网站在线观看 | 99久久免费看视频 | 亚洲精品视频导航 | 亚洲一区二区三区久久 | 欧美日韩精品在线 | 高清国产一区二区三区四区五区 | 欧洲一级免费 | 欧美精品二区中文乱码字幕高清 | 国产精品一区久久久久 | 四虎成人在线视频 | 伊人av超碰久久久麻豆 | 国产青草视频在线观看视频 | 日韩欧美不卡 | 天天综合久久 | 欧美一区二区三区在线视频 | 三级网站 | 久久综合一区二区三区 | 精品成人一区 | 好姑娘影视在线观看高清 | 日韩一区二区在线观看 | av资源中文在线天堂 | 麻豆视频91 | 国产精品亲子伦av一区二区三区 | 久久精品一区二区三区四区 | 欧美一区二区三区视频在线 | 黄色大片网站在线观看 |