android开发--WIFI应用开发
来源:互联网 发布:外国人对中国美女知乎 编辑:程序博客网 时间:2024/05/20 13:11
手机系统打开WIFI可以搜索到附近的WIFI信息,第三方应用在代码中同样也可以实现,来查询WIFI信息。并且根据WIFI信号的强弱进行排序。
1 适配器
package com.quvii.bell.adapter;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;import com.quvii.bell.R;import android.content.Context;import android.net.wifi.ScanResult;import android.net.wifi.WifiManager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;public class WifiListAdapter extends BaseAdapter {protected Context mContext;protected List<ScanResult> mDatas;private LayoutInflater inflater;public WifiListAdapter(Context mContext, List<ScanResult> mDatas) {this.mContext = mContext;this.mDatas = mDatas;this.inflater = LayoutInflater.from(mContext);sortByLevel((ArrayList<ScanResult>) mDatas);}@Overridepublic int getCount() {return mDatas.size();}@Overridepublic Object getItem(int position) {return mDatas.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// 定义ViewHolderViewHolder viewHolder;if (convertView == null) {// convertView = mContext.viewHolder = new ViewHolder();convertView = inflater.inflate(R.layout.item_wifi_info, null);viewHolder.tvSSID = (TextView) convertView.findViewById(R.id.tvSSID);viewHolder.tvSign = (TextView) convertView.findViewById(R.id.tvSign);viewHolder.lvSign = (ImageView) convertView.findViewById(R.id.lvSign);convertView.setTag(viewHolder);} else {viewHolder = (ViewHolder) convertView.getTag();}viewHolder.tvSSID.setText(mDatas.get(position).SSID);//viewHolder.tvSign.setText(Math.abs(mDatas.get(position).level)+"");setLvSign( Math.abs(mDatas.get(position).level),viewHolder.lvSign );return convertView;}private void setLvSign(int level, ImageView lv) {if (level <= 50) {lv.setImageDrawable(mContext.getResources().getDrawable(R.drawable.wifi_4));} else if (50 < level && level <= 60) {lv.setImageDrawable(mContext.getResources().getDrawable(R.drawable.wifi_3));} else if (60 < level && level <= 70) {lv.setImageDrawable(mContext.getResources().getDrawable(R.drawable.wifi_2));} else if (level > 70) {lv.setImageDrawable(mContext.getResources().getDrawable(R.drawable.wifi_1));}}// 根据wifi的强弱排序private void sortByLevel(ArrayList<ScanResult> list) {Collections.sort(list, new Comparator<ScanResult>() {@Overridepublic int compare(ScanResult lhs, ScanResult rhs) {return rhs.level - lhs.level;}});}static class ViewHolder {TextView tvSSID ,tvSign;ImageView lvSign;}}2 item XML文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:background="@drawable/selector_btn_syn" android:gravity="center_vertical" android:padding="10dp" > <TextView android:id="@+id/tvSSID" android:layout_width="0dp" android:layout_weight="1" android:layout_height="40dp" android:gravity="center_vertical"/> <TextView android:id="@+id/tvSign" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical"/> <ImageView android:id="@+id/lvSign" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/icon_arrowlistright"/> </LinearLayout>
3 主页面 xml文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/srl" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="wrap_content" android:dividerHeight="3dp" > </ListView> </android.support.v4.widget.SwipeRefreshLayout> </RelativeLayout></LinearLayout>4 MainActivity
package com.quvii.bell.activity;import java.util.List;import com.quvii.bell.R;import com.quvii.bell.adapter.WifiListAdapter;import com.quvii.bell.app.BaseActivity;import com.quvii.bell.common.Final;import com.quvii.bell.common.WifiConnect;import com.quvii.bell.utils.LogUtils;import com.quvii.bell.utils.Utils;import android.app.Activity;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.net.wifi.ScanResult;import android.net.wifi.WifiManager;import android.os.Bundle;import android.os.Handler;import android.support.v4.widget.SwipeRefreshLayout;import android.view.View;import android.view.View.OnClickListener;import android.widget.AdapterView;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import android.widget.AdapterView.OnItemClickListener;public class WifiInfoActivity extends BaseActivity implementsOnItemClickListener, OnClickListener, SwipeRefreshLayout.OnRefreshListener {private SwipeRefreshLayout srl;private ListView mLv;private List<ScanResult> mDatas;private WifiListAdapter mAdapter;public static final String TAG = "WifiInfoActivity";@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_wifi_info);init();}private void init() {srl = (SwipeRefreshLayout) findViewById(R.id.srl);mLv = (ListView) findViewById(R.id.lv);srl.setOnRefreshListener(this);srl.setColorSchemeResources(android.R.color.holo_blue_bright,android.R.color.holo_green_light,android.R.color.holo_orange_light,android.R.color.holo_red_light);mLv.setOnItemClickListener(this);mDatas = getWifiListDatas(this);mAdapter = new WifiListAdapter(this, mDatas);mLv.setAdapter(mAdapter);}@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position,long id) {}private List<ScanResult> getWifiListDatas(Context context) {WifiManager mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);if (!mWifiManager.isWifiEnabled()) {toast("please open wifi connection");}return mWifiManager.getScanResults();}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.lvBack:finish();break;default:break;}}@Overridepublic void onRefresh() {new Handler().postDelayed(new Runnable() {@Overridepublic void run() {srl.setRefreshing(false);}}, 500);}}
0 0
- android开发--WIFI应用开发
- 【Android】Android之WiFi开发应用示例
- Android 设置wifi连接应用开发
- Android之WiFi开发应用示例
- Android WIFI应用简单开发实例
- Android开发--WIFI开发
- Android wifi开发
- android wifi驱动开发
- Android开发 --- Wifi 管理
- android WIFI连接开发
- android WIFI连接开发
- Android WIFI开发
- android之wifi开发
- android WIFI连接开发
- android wifi开发介绍
- Android WIFI开发
- android wifi开发
- Android wifi开发
- 分页中的PageBean
- Emergency
- 大数据之数据结构例析(二)
- spark job提交过程
- oh-my-zsh
- android开发--WIFI应用开发
- Android异常整理——《App研发录—架构设计,Crash分析和竞品技术分析》
- linux 文件创建的所有者用uidgid记录
- HDU 5093 Battle ships(二分图匹配)
- Docker三大核心之容器
- 经纬度与位置信息的转换
- [poj 2559] Largest Rectangle in a Histogram:单调栈
- JSONObject、 JSONArray
- 洛谷P2656 采蘑菇