I must use startCustomizedScan(ScanSettings requested) function. Request a scan for access points in specified channel list. Each channel is specified by its frequency in MHz, e.g. "2437"
My Full code is hear. public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button scanButton = (Button)findViewById(R.id.button1); scanButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE); ScanSettings scanSettings = new ScanSettings(); addWifiChannel(scanSettings, 11); wifiManager.startCustomizedScan(scanSettings); } }); } public WifiChannel createWifiChannel(int channel) { WifiChannel wifiChannel = new WifiChannel(); wifiChannel.channelNum = channel; //wifiChannel.freqMHz = getFrequencyFromChannel(channel); return wifiChannel; } public void addWifiChannel(ScanSettings scanSettings, int channel) { if (scanSettings.channelSet == null) scanSettings.channelSet = new ArrayList<WifiChannel>(); scanSettings.channelSet.add(createWifiChannel(channel)); } private final static ArrayList<Integer> channelsFrequency = new ArrayList<Integer>( Arrays.asList(0, 2412, 2417, 2422, 2427, 2432, 2437, 2442, 2447, 2452, 2457, 2462, 2467, 2472, 2484)); public static Integer getFrequencyFromChannel(int channel) { return channelsFrequency.get(channel); } public static int getChannelFromFrequency(int frequency) { return channelsFrequency.indexOf(Integer.valueOf(frequency)); } } My Manifaste file is here: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.custom.wifiscan" android:sharedUserId="com.example.android" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="21" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.LOCATION_HARDWARE" /> But my aplication run real devices (LG G3 run in 5.0 ) application is stoped 09-12 19:08:00.391: E/AndroidRuntime(23766): FATAL EXCEPTION: main09-12 19:08:00.391: E/AndroidRuntime(23766): Process: com.custom.wifiscan, PID: 2376609-12 19:08:00.391: E/AndroidRuntime(23766): java.lang.SecurityException: LocationHardware: Neither user 10246 nor current process has android.permission.LOCATION_HARDWARE.09-12 19:08:00.391: E/AndroidRuntime(23766): at android.os.Parcel.readException(Parcel.java:1540)09-12 19:08:00.391: E/AndroidRuntime(23766): at android.os.Parcel.readException(Parcel.java:1493)09-12 19:08:00.391: E/AndroidRuntime(23766): at android.net.wifi.IWifiManager$Stub$Proxy.startScan(IWifiManager.java:984)09-12 19:08:00.391: E/AndroidRuntime(23766): at android.net.wifi.WifiManager.startCustomizedScan(WifiManager.java:1037)09-12 19:08:00.391: E/AndroidRuntime(23766): at com.custom.wifiscan.MainActivity$1.onClick(MainActivity.java:30)09-12 19:08:00.391: E/AndroidRuntime(23766): at android.view.View.performClick(View.java:4763)09-12 19:08:00.391: E/AndroidRuntime(23766): at android.view.View$PerformClick.run(View.java:19821)09-12 19:08:00.391: E/AndroidRuntime(23766): at android.os.Handler.handleCallback(Handler.java:739)09-12 19:08:00.391: E/AndroidRuntime(23766): at android.os.Handler.dispatchMessage(Handler.java:95)09-12 19:08:00.391: E/AndroidRuntime(23766): at android.os.Looper.loop(Looper.java:135)09-12 19:08:00.391: E/AndroidRuntime(23766): at android.app.ActivityThread.main(ActivityThread.java:5274)09-12 19:08:00.391: E/AndroidRuntime(23766): at java.lang.reflect.Method.invoke(Native Method)09-12 19:08:00.391: E/AndroidRuntime(23766): at java.lang.reflect.Method.invoke(Method.java:372)09-12 19:08:00.391: E/AndroidRuntime(23766): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:909)09-12 19:08:00.391: E/AndroidRuntime(23766): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704) android.permission.LOCATION_HARDWARE What does the error. How can I solve this error Please someone give me some insight, Best respects, Thank. -- You received this message because you are subscribed to the Google Groups "Android Security Discussions" group. To unsubscribe from this group and stop receiving emails from it, send an email to android-security-discuss+unsubscr...@googlegroups.com. To post to this group, send email to android-security-discuss@googlegroups.com. Visit this group at http://groups.google.com/group/android-security-discuss. For more options, visit https://groups.google.com/d/optout.