package com.roboo.like.google.fragments; import java.io.DataOutputStream; import java.util.LinkedList; import android.annotation.SuppressLint; import android.net.wifi.ScanResult; import android.os.Bundle; import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.content.Loader; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import com.roboo.like.google.R; import com.roboo.like.google.adapters.WIFIAdapter; import com.roboo.like.google.async.WifiAsyncTaskLoader; @SuppressLint("NewApi") public class WIFIFragment extends BaseWithProgressFragment implements LoaderCallbacks<LinkedList<ScanResult>> { private ListView mListView; public static WIFIFragment newInstance() { WIFIFragment fragment = new WIFIFragment(); return fragment; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = null; if (savedInstanceState == null) { view = inflater.inflate(R.layout.fragment_wifi, null);// TODO mListView = (ListView) view.findViewById(R.id.dlv_list); getActivity().getSupportLoaderManager().initLoader(0, null, this); } return view; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } public void setListener() { mListView.setOnItemClickListener(getOnItemClickListener()); } private OnItemClickListener getOnItemClickListener() { return new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { } }; } @Override public Loader<LinkedList<ScanResult>> onCreateLoader(int id, Bundle args) { return new WifiAsyncTaskLoader(getActivity()); } @Override public void onLoadFinished(Loader<LinkedList<ScanResult>> loader, LinkedList<ScanResult> data) { mProgressBar.setVisibility(View.GONE); if (data != null) { mListView.setAdapter(new WIFIAdapter(getActivity(), data)); } } @Override public void onLoaderReset(Loader<LinkedList<ScanResult>> loader) { } /*** * 执行Root 命令 * * @param command * 要执行的命令[chmod 777 /data/misc/wifi/wpa_supplicant.conf] * @return true 命令成功执行 或者 false 命令执行失败 */ public static boolean runRootCommand(String command) { Process process = null; DataOutputStream os = null; try { process = Runtime.getRuntime().exec("su"); os = new DataOutputStream(process.getOutputStream()); os.writeBytes(command + "\n"); os.writeBytes("exit\n"); os.flush(); process.waitFor(); } catch (Exception e) { return false; } finally { try { if (os != null) { os.close(); } process.destroy(); } catch (Exception e) {} } return true; } }