Coder Social home page Coder Social logo

wificonnector's Introduction

WifiConnector


Open source library for Android to connect and manage Wifi Networks

Requirements

  • API > 19
  • Since Android 6, you are able to configure WifiNetworks that your app has created, you cannot edit wifi configurations from others apps (Unless you are developing a system application).

Import

Using Gradle

  • Add this on your root build.gradle of your project:

     allprojects {
     	repositories {
     			...
     	    maven { url 'https://jitpack.io' }
     	}
     }
    
  • And add the dependency:

     compile 'com.github.jflavio1:WifiConnector:v1.7'
    

Using Maven

  • Add to you build file

     <repositories>
     	<repository>
     	   <id>jitpack.io</id>
     	    <url>https://jitpack.io</url>
     	</repository>
     </repositories>
    
  • And the dependency

     <dependency>
     	<groupId>com.github.jflavio1</groupId>
     	<artifactId>WifiConnector</artifactId>
     	<version>v1.7</version>
     </dependency>
    

Example

	// First initializate a WifiConnector object
	WifiConnector connector = new WifiConnector(this, "NEW_SSID", "NEW_BSSID", "WEP", "wifiPassword")
	// you could register wifi state listener
	.registerWifiStateListener(new WifiStateListener() {
            @Override
            public void onStateChange(int wifiState) {
                
            }

            @Override
            public void onWifiEnabled() {
                // here you should start your network operations
            }

            @Override
            public void onWifiEnabling() {
                
            }

            @Override
            public void onWifiDisabling() {
                
            }

            @Override
            public void onWifiDisabled() {
                
            }
        })
	// and register wifi connection listener
	.registerWifiConnectionListener(new ConnectionResultListener() {
            @Override
            public void successfulConnect(String SSID) {
                Log.d("MyTag", "Success connecting to Access Point " + SSID);
            }

            @Override
            public void errorConnect(int codeReason) {
                
            }

            @Override
            public void onStateChange(SupplicantState supplicantState) {
                
            }
        })
	// and after register all listeners you want, you sould enable wifi and connect to the access point
	.enableWifi().connectToWifi();
	
		
	**OR SIMPLY**
	WifiConnector connector = new WifiConnector(this, "NEW_SSID", "NEW_BSSID", "WEP", "wifiPassword");
		
	connector.enableWifi();
		
	connector.connectToWifi(new ConnectionResultListener() {
            @Override
            public void successfulConnect(String SSID) {
                
            }

            @Override
            public void errorConnect(int codeReason) {

            }

            @Override
            public void onStateChange(SupplicantState supplicantState) {

            }
        });
		
		
		
	// And do not forget to unregister your wifi listeners on the onStop() or onDestroy() method
	connector.unregisterListeners(wifiConnector.wifiStateReceiver, wifiConnector.wifiConnectionReceiver);
	

Important!

Since 1.4 enableWifi() method is not on constructors anymore, you must call it explicity Since 1.2-beta1 listeners are not inside WifiConnector class, so you must call them as a single class.

Remember, you have to put these permissions on your Manifest:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

And location services must be turned on!!

All tests and suggestions are well received.


License

Copyright © 2018 JoseFlavio.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

wificonnector's People

Contributors

jflavio11 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

wificonnector's Issues

New logo/icon

Hi, I am a graphic designer, I want to help others in graphic design.

After I reviewed your project, you have no logo on this project. Therefore I want to contribute to this project by creating a new logo / icon. what do you think?

logo for WifiConnector

Hello,
Good Day, i make a logo icon for your project. If you want to use this logo in your project, then comment below, I will give you the source file. And if you want a change, then tell me I will change.It's totally free for open source project.
wificonnector-01

Not connect to none type

Hello,
I want to connect none type of wifi and wifi has no internet access but its not possible to connect. Can you assist me is it possible to connect auto wifi using only SSID and no internet access.

Thanks in Advance

Kitkat - didn't work.

When connect wifi, addNetwork method always returns -1.
Solved : WiFi config - SSID = """ + SSID + """;
Try this. in my case, work.

hello! I have exception when connect to wifi

07-23 20:12:25.775 26981-26981/ua.findwifi E/AndroidRuntime: FATAL EXCEPTION: main
Process: ua.findwifi, PID: 26981
java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.wifi.supplicant.STATE_CHANGE flg=0x24000010 (has extras) } in com.jflavio1.wificonnector.WifiConnector$WifiConnectionReceiver@4f6b1c8
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:932)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5728)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
Caused by: java.lang.IllegalArgumentException: Receiver not registered: com.jflavio1.wificonnector.WifiConnector$WifiConnectionReceiver@fe4d261
at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:789)
at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:1200)
at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:576)
at com.jflavio1.wificonnector.WifiConnector$WifiConnectionReceiver.onReceive(WifiConnector.java:727)
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:922)
at android.os.Handler.handleCallback(Handler.java:815) 
at android.os.Handler.dispatchMessage(Handler.java:104) 
at android.os.Looper.loop(Looper.java:207) 
at android.app.ActivityThread.main(ActivityThread.java:5728) 
at java.lang.reflect.Method.invoke(Native Method) 

Cannot connect wifi on Samsung device (Android 8.0)

Hi, there is an issue when I try to connect wifi on Samsung with android 8.0. I can't connect and there is no any log message that I can use to debug. Is this library compatible with android 8.0 or is Samsung device problem ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.