日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

蓝牙分享

發布時間:2025/4/14 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蓝牙分享 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引用:http://mmqzlj.blog.51cto.com/2092359/752799

? ? 由于多數客戶是手機盲,不知道如何快速安裝apk軟件到android手機上,故而公司提出開發一個利用無線在兩臺android手機上分享已安裝軟件的需求。

近段時間在網上搜索關于藍牙分享軟件的例子,未果! 發現android自帶的examples里有個bluetoothChat的例子,里面關于藍牙的調用例子看起來非常繁瑣,先判斷是否支持藍牙,再判斷藍牙是否打開,再去搜索藍牙設備,然后在配對,配對后發送信息。在兩個手機上分別裝了試試,發現根本無法發送信息。幾天下來一無所獲。最后無意中google了一下,看到一段極端簡單的代碼調用android自帶的ACTION_SEND,居然可以了。 避免更多的人繞彎路,現把android手機之間分享已安裝軟件的代碼貼出,供大家參考。 主要代碼:????????? import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.SimpleAdapter.ViewBinder;

public class MainActivity extends Activity implements OnClickListener{
?? ?public static final String TAG = "AppListActivity";
?? ?private ListView listView;
?? ?private List<Map<String,Object>> list;

?? ?/* (non-Javadoc)
?? ? * @see android.app.Activity#onCreate(android.os.Bundle)
?? ? */
?? ?@Override
?? ?protected void onCreate(Bundle savedInstanceState) {
?? ???? Log.v(TAG,"created");
?? ???? super.onCreate(savedInstanceState);
?? ???? this.setContentView(R.layout.app_list);
?? ???? listView = (ListView)this.findViewById(R.id.listView1);
?? ???? list = new ArrayList<Map<String,Object>>();
?? ???? List<PackageInfo> appListInfo=this.getPackageManager().getInstalledPackages(0);
?? ???? for (PackageInfo p : appListInfo) {
?? ???? ??? if(p.applicationInfo.sourceDir.startsWith("/system/app/")){
?? ???? ??? ??? continue;
?? ???? ??? }
?? ???? ??? Map<String,Object> map = new HashMap<String,Object>();
?? ???? ??? Drawable icon = null;
?? ???? ??? String appName= "";
?? ???? ??? try{
?? ???? ??? ??? appName = this.getPackageManager().getApplicationLabel(p.applicationInfo).toString();
?? ???? ??? ??? icon = this.getPackageManager().getApplicationIcon(p.applicationInfo.packageName);
?? ???? ??? }catch(Exception e){
?? ???? ??? ??? e.printStackTrace();
?? ???? ??? }
?? ???? ??? map.put("name", appName);
?? ???? ??? map.put("package", p.applicationInfo.packageName);
?? ???? ??? map.put("sourceDir", p.applicationInfo.sourceDir);
?? ???? ??? map.put("icon",icon);
?? ???? ??? list.add(map);
?? ???? }
?? ???? SimpleAdapter adapter = new SimpleAdapter(this,list,R.layout.app_list_item, new String[]{"name","icon"}, new int[]{R.id.tv_name,R.id.iv_icon});
?? ???? adapter.setViewBinder(new ViewBinder() {??
?? ???? ??? public boolean setViewValue(View view, Object data, String textRepresentation) {??
?? ???? ??? //判斷是否為我們要處理的對象??
?? ???? ??? if(view instanceof ImageView && data instanceof Drawable){??
?? ???? ??? ??? ImageView iv = (ImageView) view;??
?? ???? ??? ??? iv.setImageDrawable((Drawable)data);
?? ???? ??? ??? return true;??
?? ???? ??? }else??
?? ???? ??? ??? return false;??
?? ???? ??? }??
?? ???? });??
?? ???? listView.setAdapter(adapter);
?? ???? listView.setOnItemLongClickListener(new OnItemLongClickListener(){

?? ???? ??? @Override
?? ???? ??? public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
?? ???? ??? ??? if(list.get(position).get("sourceDir")!=null){
?? ???? ??? ??? ??? File f = new File(list.get(position).get("sourceDir").toString());
??????????????????? //調用android分享窗口
?? ???? ??? ??? ??? Intent intent = new Intent();
?? ???? ??? ??? ??? intent.setAction(Intent.ACTION_SEND);
?? ???? ??? ??? ??? intent.setType("*/*");
?? ???? ??? ??? ??? intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(f));
?? ???? ??? ??? ??? startActivity(intent);
?? ???? ??? ??? }
?? ???? ??? ??? return false;
?? ???? ??? }


?? ???? });
?? ?}

?? ?/* (non-Javadoc)
?? ? * @see android.app.Activity#onDestroy()
?? ? */
?? ?@Override
?? ?protected void onDestroy() {
?? ???? Log.v(TAG, "destroy");
?? ???? super.onDestroy();
?? ?}

?? ?@Override
?? ?public void onClick(View v) {

?? ?}

} 界面截圖:

轉載于:https://www.cnblogs.com/sode/archive/2013/05/03/3056120.html

總結

以上是生活随笔為你收集整理的蓝牙分享的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。