<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
+ <uses-feature android:name="android.permission.CONNECTIVITY_INTERNAL" android:required="true"/>
+
+
<uses-permission android:name="android.permission.CAMERA"/>
import org.iotivity.service.easysetup.core.EasySetupStatus;\r
import org.iotivity.service.easysetup.core.EnrolleeDevice;\r
import org.iotivity.service.easysetup.core.EnrolleeState;\r
+import org.iotivity.service.easysetup.core.IpOnBoardingConnection;\r
import org.iotivity.service.easysetup.impl.EnrolleeDeviceFactory;\r
import org.iotivity.service.easysetup.impl.WiFiOnBoardingConfig;\r
import org.iotivity.service.easysetup.impl.WiFiProvConfig;\r
-//import org.iotivity.service.easysetup.mediator.EasySetupManager;\r
\r
import android.app.Activity;\r
import android.content.Intent;\r
import android.os.Bundle;\r
import android.os.Handler;\r
import android.os.Message;\r
+import android.util.Log;\r
import android.view.View;\r
import android.view.View.OnClickListener;\r
import android.widget.Button;\r
public static final int FAILED = 1;\r
public static final int STATE_CHANGED = 2;\r
\r
- private boolean mRunningStatus = false;\r
-\r
static final int REQUEST_IMAGE_CAPTURE = 1;\r
ImageView imageView;\r
\r
EditText mSsidText;\r
EditText mPassText;\r
+\r
+ EditText mEnrolleeSsidText;\r
+ EditText mmEnrolleePasswordPassText;\r
+\r
+\r
+ TextView mDeviceIpTextView;\r
+ TextView mDeviceMacTextView;\r
+\r
+\r
TextView mResultTextView;\r
ProgressBar mProgressbar;\r
Button mStartButton;\r
/* Initialize widgets to get user input for target network's SSID & password*/\r
mSsidText = (EditText) findViewById(R.id.ssid);\r
mPassText = (EditText) findViewById(R.id.password);\r
+ mEnrolleeSsidText = (EditText) findViewById(R.id.enrolleeSsid);\r
+ mmEnrolleePasswordPassText = (EditText) findViewById(R.id.enrolleePass);\r
+ mDeviceIpTextView = (TextView) findViewById(R.id.ipAddr);\r
+ mDeviceMacTextView = (TextView) findViewById(R.id.hardAddr);\r
+\r
mResultTextView = (TextView) findViewById(R.id.status);\r
mProgressbar = (ProgressBar) findViewById(R.id.progressBar);\r
\r
\r
+\r
+\r
/* Create Easy Setup Service instance*/\r
mEasySetupService = EasySetupService.getInstance(getApplicationContext(),\r
new EasySetupStatus() {\r
\r
@Override\r
public void onFinished(final EnrolleeDevice enrolledevice) {\r
- mRunningStatus = false;\r
+ Log.i("MainActivity", "onFinished() is received " + enrolledevice\r
+ .isSetupSuccessful());\r
if (enrolledevice.isSetupSuccessful()) {\r
mHandler.sendEmptyMessage(SUCCESS);\r
} else {\r
\r
@Override\r
public void onProgress(EnrolleeState state) {\r
+ Log.i("MainActivity", "onProgress() is received ");\r
mHandler.sendEmptyMessage(STATE_CHANGED);\r
}\r
\r
\r
public WiFiProvConfig getEnrollerWifiConfig() {\r
/* Provide the credentials for the Mediator Soft AP to be connected by Enrollee*/\r
- mWiFiProvConfig = new WiFiProvConfig("EasySetup123", "EasySetup123");\r
+ mWiFiProvConfig = new WiFiProvConfig("hub2.4G", "11112222");\r
+ mEnrolleeSsidText.setText("hub2.4G");\r
+ mmEnrolleePasswordPassText.setText("11112222");\r
+\r
return mWiFiProvConfig;\r
}\r
\r
public void onDestroy() {\r
super.onDestroy();\r
/*Reset the Easy setup process*/\r
- mEasySetupService.finish();\r
+ if(mEasySetupService != null)\r
+ {\r
+ mEasySetupService.finish();\r
+ }\r
}\r
\r
public void addListenerForStartAP() {\r
public void onClick(View arg0) {\r
try {\r
\r
- mRunningStatus = true;\r
mProgressbar.setVisibility(View.VISIBLE);\r
mProgressbar.setIndeterminate(true);\r
mStartButton.setEnabled(false);\r
mResultTextView.setText(R.string.running);\r
\r
+ //Reset Device information\r
+ mDeviceIpTextView.setText(R.string.not_available);\r
+ mDeviceMacTextView.setText(R.string.not_available);\r
+\r
+\r
String ssid = mSsidText.getText().toString();\r
String password = mPassText.getText().toString();\r
\r
+ String enrolleeSsid = mEnrolleeSsidText.getText().toString();\r
+ String enrolleePassword = mmEnrolleePasswordPassText.getText().toString();\r
+\r
+ mWiFiProvConfig = new WiFiProvConfig(enrolleeSsid, enrolleePassword);\r
+\r
mWiFiOnBoardingConfig.setSSId(ssid);\r
mWiFiOnBoardingConfig.setSharedKey(password);\r
\r
+\r
mEasySetupService.startSetup(mDevice);\r
\r
mStopButton.setEnabled(true);\r
mStopButton.setOnClickListener(new OnClickListener() {\r
@Override\r
public void onClick(View arg0) {\r
- mRunningStatus = false;\r
mStartButton.setEnabled(true);\r
mStopButton.setEnabled(false);\r
mResultTextView.setText(R.string.stopped);\r
@Override\r
public void handleMessage(Message msg) {\r
\r
- // Returns if Test is stopped, this has to be handled in EasySetupService\r
- if (!mRunningStatus) return;\r
-\r
switch (msg.what) {\r
case SUCCESS: {\r
\r
mProgressbar.setVisibility(View.INVISIBLE);\r
String resultMsg = "Device configured successfully";\r
mResultTextView.setText(R.string.success);\r
+\r
+ /* Update device information on the Ui */\r
+ IpOnBoardingConnection connection = (IpOnBoardingConnection) mDevice\r
+ .getConnection();\r
+ mDeviceIpTextView.setText(connection.getIp());\r
+ mDeviceMacTextView.setText(connection.getHardwareAddress());\r
+\r
Toast.makeText(getApplicationContext(), resultMsg, Toast.LENGTH_SHORT).show();\r
break;\r
}\r
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
- android:layout_marginTop="20dp"
+ android:layout_marginTop="5dp"
android:orientation="horizontal">
android:layout_marginRight="20dp"
android:elegantTextHeight="true"
android:text="@string/test_status"
- android:textSize="20sp" />
+ android:textSize="15sp" />
<TextView
android:id="@+id/status"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="30dp"
- android:layout_marginTop="5dp"
android:text="@string/not_started"
android:textColor="@android:color/background_light"
- android:textSize="30dp" />
+ android:textSize="20dp" />
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerHorizontal="true"
+ android:layout_gravity="center"
+ android:layout_marginTop="10dp"
+ android:orientation="vertical">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Enter Enroller's SSID" />
+
+
+ <EditText
+ android:id="@+id/enrolleeSsid"
+ android:layout_width="250dp"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal" />
+
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="10dp"
+ android:text="Enter Enroller's Password" />
+
+
+ <EditText
+ android:id="@+id/enrolleePass"
+ android:layout_width="250dp"
+ android:layout_height="wrap_content"
+
+ android:layout_gravity="center_horizontal" />
</LinearLayout>
+
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
- android:layout_marginTop="50dp"
+ android:layout_marginTop="10dp"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="Enter SSID" />
+ android:text="Enter SoftAP SSID" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
- android:text="Enter Password" />
+ android:text="Enter SoftAP PWD" />
<EditText
android:id="@+id/password"
android:layout_width="250dp"
android:layout_height="wrap_content"
-
android:layout_gravity="center_horizontal" />
</LinearLayout>
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal"
+ android:layout_marginTop="5dp"
+ android:text="Device information"
+ android:textAppearance="?android:attr/textAppearanceMedium" />
+
+ <RelativeLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerHorizontal="true"
+ android:layout_gravity="center"
+ android:layout_marginTop="10dp"
+ android:orientation="vertical">
+
+
+ <TextView
+ android:id="@+id/ipAddrLable"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal"
+ android:text="IP Address"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+ <TextView
+ android:id="@+id/ipAddr"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal"
+ android:layout_toRightOf="@id/ipAddrLable"
+ android:text="@string/not_available"
+
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+
+ <TextView
+ android:id="@+id/hardAddrLable"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/ipAddrLable"
+ android:layout_gravity="center_horizontal"
+ android:text="MAC Address"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+ <TextView
+ android:id="@+id/hardAddr"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/ipAddr"
+ android:layout_gravity="center_horizontal"
+ android:layout_toRightOf="@id/hardAddrLable"
+ android:text="@string/not_available"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+
+ </RelativeLayout>
+
+
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_margin="10dp"
android:elegantTextHeight="true"
+ android:enabled="false"
android:text="@string/stopSetup"
android:textAllCaps="false"
- android:textSize="18sp"
- android:enabled="false"/>
+ android:textSize="18sp" />
</LinearLayout>
-
</LinearLayout>
\ No newline at end of file
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
- <dimen name="activity_vertical_margin">16dp</dimen>
+ <dimen name="activity_vertical_margin">1dp</dimen>
</resources>
<string name="success">Successful</string>
<string name="failed">Failed</string>
<string name="not_started">Not started</string>
- <string name="test_status">Status</string>
+ <string name="test_status">Device configuration</string>
<string name="running">Running</string>
<string name="stopped">Stopped</string>
+ <string name="not_available">Not available</string>
+
</resources>
//return ES_ERROR;
}
+ OC_LOG_V(INFO, TAG, PCF("Finding SSID: %s"), ssid);
+
while (findNetwork(ssid) == 0) // found
{
delay(1000);
package org.iotivity.service.easysetup.core;\r
\r
import android.content.Context;\r
+import android.util.Log;\r
\r
import org.iotivity.service.easysetup.impl.EnrolleeDeviceFactory;\r
import org.iotivity.service.easysetup.mediator.EasySetupManager;\r
+import org.iotivity.service.easysetup.mediator.ProvisionEnrollee;\r
\r
import java.io.IOException;\r
import java.util.ArrayList;\r
*/\r
public class EasySetupService {\r
\r
+ public static String TAG = EasySetupService.class.getName();\r
+\r
private static EasySetupService sInstance;\r
\r
private final EasySetupStatus mCallback;\r
\r
public EnrolleeDeviceFactory mDeviceFactory;\r
\r
+ ProvisionEnrollee mProvisionEnrolleeInstance;\r
+\r
private EasySetupService(EasySetupStatus callback) {\r
mCallback = callback;\r
mProvisioningCallback = new ProvisioningCallbackImpl(mCallback);\r
mEnrolleeDeviceList = new ArrayList<EnrolleeDevice>();\r
mContext = null;\r
mDeviceFactory = null;\r
-\r
- //Native Api call to initialize the OIC stack\r
- EasySetupManager.getInstance().initEasySetup();\r
}\r
\r
/**\r
\r
public void finish() {\r
//Native Api call to reset OIC stack\r
- EasySetupManager.getInstance().terminateEasySetup();\r
+ if(mProvisionEnrolleeInstance != null)\r
+ {\r
+ mProvisionEnrolleeInstance.stopEnrolleeProvisioning(0);\r
+ }\r
}\r
\r
/**\r
@Override\r
public void onFinished(OnBoardingConnection connection) {\r
if (connection.isConnected()) {\r
+ Log.i(TAG, "On boarding is successful ");\r
try {\r
+ Log.i(TAG, "waiting for 15 seconds to start provisioning");\r
Thread.sleep(15000);//Sleep for allowing thin device to start the services\r
} catch (InterruptedException e) {\r
e.printStackTrace();\r
@Override\r
public void onFinished(EnrolleeDevice enrolledevice) {\r
//if(mEnrolleeDeviceList.contains(enrolledevice)) {\r
+ Log.i(TAG, "onFinished() is received " + enrolledevice.isSetupSuccessful());\r
mCallback.onFinished(enrolledevice);\r
- //}\r
+ // }\r
}\r
\r
}\r
mConnection = conn;\r
}\r
\r
+ public OnBoardingConnection getConnection() { return mConnection;}\r
+\r
\r
/**\r
* This method is called back by Easy setup service if on boarding needs to be done.\r
return (mState == EnrolleeState.DEVICE_PROVISIONING_STATE) ? true : false;\r
}\r
\r
+\r
+\r
}\r
\r
private boolean mIsConnected;\r
private String mIp;\r
+ private String mHardwareAddress;\r
+ private String mDeviceName;\r
+\r
+ private boolean isReachable;\r
+\r
+ public void setHardwareAddress(String address) {\r
+ mHardwareAddress = address;\r
+ }\r
+\r
+ public String getHardwareAddress() {\r
+ return mHardwareAddress;\r
+ }\r
+\r
+ public void setDeviceName(String name) {\r
+ mDeviceName = name;\r
+ }\r
+\r
+ public String getDeviceName() {\r
+ return mDeviceName;\r
+ }\r
\r
public void setConnectivity(boolean connected) {\r
mIsConnected = connected;\r
/**\r
* ***************************************************************\r
- * <p/>\r
+ * <p>\r
* Copyright 2015 Samsung Electronics All Rights Reserved.\r
- * <p/>\r
- * <p/>\r
- * <p/>\r
+ * <p>\r
+ * <p>\r
+ * <p>\r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
* You may obtain a copy of the License at\r
- * <p/>\r
+ * <p>\r
* http://www.apache.org/licenses/LICENSE-2.0\r
- * <p/>\r
+ * <p>\r
* Unless required by applicable law or agreed to in writing, software\r
* distributed under the License is distributed on an "AS IS" BASIS,\r
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
* See the License for the specific language governing permissions and\r
* limitations under the License.\r
- * <p/>\r
+ * <p>\r
* ****************************************************************\r
*/\r
\r
import org.iotivity.service.easysetup.core.IpOnBoardingConnection;\r
import org.iotivity.service.easysetup.core.OnBoardingConfig;\r
import org.iotivity.service.easysetup.core.ProvisioningConfig;\r
+import org.iotivity.service.easysetup.mediator.EasySetupCallbackHandler;\r
import org.iotivity.service.easysetup.mediator.EasySetupManager;\r
import org.iotivity.service.easysetup.mediator.EnrolleeInfo;\r
import org.iotivity.service.easysetup.mediator.IOnBoardingStatus;\r
EnrolleeInfo connectedDevice;\r
private EasySetupManager easySetupManagerNativeInstance;\r
ProvisionEnrollee provisionEnrolleInstance;\r
-\r
- // Native Api to start provisioning process after successful on-boarding on Wifi AP.\r
- // Library is already loaded while constructing EasySetupService\r
- private native void ProvisionEnrollee(String ipAddress, String netSSID,\r
- String netPWD, int connectivityType);\r
+ Timer myTimer;\r
\r
IOnBoardingStatus deviceScanListener = new IOnBoardingStatus() {\r
\r
@Override\r
public void deviceOnBoardingStatus(EnrolleeInfo enrolleStatus) {\r
Log.d("ESSoftAPOnBoarding", "Entered");\r
- if (enrolleStatus != null && enrolleStatus.getIpAddr() != null) {\r
- String finalResult = "Easy Connect : ";\r
+ if (mState == EnrolleeState.DEVICE_ON_BOARDING_STATE) {\r
+ Log.d("ESSoftAPOnBoarding", "Device in OnBoarding State");\r
+ if (enrolleStatus != null && enrolleStatus.getIpAddr() != null) {\r
+ String finalResult = "Easy Connect : ";\r
+\r
+ if (enrolleStatus.isReachable()) {\r
+ finalResult = "Device OnBoarded" + "["\r
+ + enrolleStatus.getIpAddr() + "]";\r
\r
- if (enrolleStatus.isReachable()) {\r
- finalResult = "Device OnBoarded" + "["\r
- + enrolleStatus.getIpAddr() + "]";\r
+ connectedDevice = enrolleStatus;\r
+ IpOnBoardingConnection conn = new IpOnBoardingConnection();\r
\r
- connectedDevice = enrolleStatus;\r
- IpOnBoardingConnection conn = new IpOnBoardingConnection();\r
- conn.setConnectivity(true);\r
- conn.setIp(connectedDevice.getIpAddr());\r
- Log.d("ESSoftAPOnBoarding", "Entered");\r
- mOnBoardingCallback.onFinished(conn);\r
- return;\r
+ conn.setConnectivity(true);\r
+ conn.setIp(connectedDevice.getIpAddr());\r
+ conn.setHardwareAddress(enrolleStatus.getHWAddr());\r
+ conn.setDeviceName(enrolleStatus.getDevice());\r
\r
+ Log.d("ESSoftAPOnBoarding", "Entered");\r
+ mOnBoardingCallback.onFinished(conn);\r
+ return;\r
+\r
+ }\r
}\r
- }\r
\r
- IpOnBoardingConnection conn = new IpOnBoardingConnection();\r
- conn.setConnectivity(false);\r
- mOnBoardingCallback.onFinished(conn);\r
+ IpOnBoardingConnection conn = new IpOnBoardingConnection();\r
+ conn.setConnectivity(false);\r
+ mOnBoardingCallback.onFinished(conn);\r
+ }\r
+ else\r
+ {\r
+ Log.e("ESSoftAPOnBoarding", "Device NOT in OnBoarding State. Ignoring the event");\r
+ }\r
}\r
};\r
\r
\r
- protected EnrolleeDeviceWiFiOnboarding(Context context, OnBoardingConfig onBoardingConfig, ProvisioningConfig provConfig) {\r
+ protected EnrolleeDeviceWiFiOnboarding(Context context, OnBoardingConfig onBoardingConfig,\r
+ ProvisioningConfig provConfig) {\r
super(onBoardingConfig, provConfig);\r
mContext = context;\r
mWifiSoftAPManager = new WiFiSoftAPManager(mContext);\r
\r
@Override\r
protected void startOnBoardingProcess() {\r
- Log.i(TAG, "Starging on boarding process");\r
+ Log.i(TAG, "Starting on boarding process");\r
\r
//1. Create Soft AP\r
- boolean status = mWifiSoftAPManager.setWifiApEnabled((WifiConfiguration) mOnBoardingConfig.getConfig(), true);\r
+ boolean status = mWifiSoftAPManager.setWifiApEnabled((WifiConfiguration)\r
+ mOnBoardingConfig.getConfig(), true);\r
+\r
+ mState = EnrolleeState.DEVICE_ON_BOARDING_STATE;\r
\r
Log.i(TAG, "Soft AP is created with status " + status);\r
\r
- Timer myTimer;\r
myTimer = new Timer();\r
myTimer.schedule(new TimerTask() {\r
@Override\r
\r
protected void stopOnBoardingProcess() {\r
Log.i(TAG, "Stopping on boarding process");\r
+ myTimer.cancel();\r
boolean status = mWifiSoftAPManager.setWifiApEnabled(null, false);\r
Log.i(TAG, "Soft AP is disabled with status " + status);\r
}\r
\r
@Override\r
protected void startProvisioningProcess(OnBoardingConnection conn) {\r
+ mState = EnrolleeState.DEVICE_PROVISIONING_STATE;\r
\r
if (mProvConfig.getConnType() == ProvisioningConfig.ConnType.WiFi) {\r
\r
provisionEnrolleInstance.registerProvisioningHandler(new IProvisioningListener() {\r
@Override\r
public void onFinishProvisioning(int statuscode) {\r
- mState = (statuscode == 0) ? EnrolleeState.DEVICE_PROVISIONING_SUCCESS_STATE : EnrolleeState.DEVICE_PROVISIONING_FAILED_STATE;\r
+\r
+ Log.i(TAG, "Provisioning is finished with status code " + statuscode);\r
+ mState = (statuscode == 0) ? EnrolleeState.DEVICE_PROVISIONING_SUCCESS_STATE\r
+ : EnrolleeState.DEVICE_PROVISIONING_FAILED_STATE;\r
+ stopOnBoardingProcess();\r
mProvisioningCallback.onFinished(EnrolleeDeviceWiFiOnboarding.this);\r
}\r
});\r
IpOnBoardingConnection connection = (IpOnBoardingConnection) conn;\r
WiFiProvConfig wifiProvConfig = (WiFiProvConfig) mProvConfig;\r
\r
- // Native Api call to start provisioning of the enrolling device\r
- EasySetupManager.getInstance().provisionEnrollee(connection.getIp(), wifiProvConfig.getSsId(), wifiProvConfig.getPassword(), mOnBoardingConfig.getConnType().getValue());\r
+ easySetupManagerNativeInstance = EasySetupManager.getInstance();\r
+ easySetupManagerNativeInstance.initEasySetup();\r
\r
+ // Native Api call to start provisioning of the enrolling device\r
+ easySetupManagerNativeInstance.provisionEnrollee(connection.getIp(), wifiProvConfig\r
+ .getSsId(), wifiProvConfig.getPassword(), mOnBoardingConfig.getConnType()\r
+ .getValue());\r
}\r
-\r
}\r
-\r
-\r
}\r
\r
import android.content.Context;\r
\r
-//import org.iotivity.ca.CaInterface;\r
+import org.iotivity.ca.CaInterface;\r
\r
public class EasySetupManager {\r
private native void InitEasySetup();\r
}\r
\r
public void initEasySetup() {\r
- // CaInterface.initialize(appContext);\r
+ CaInterface.initialize(appContext);\r
InitEasySetup();\r
}\r
\r
\r
public void provisionEnrollee(String ipAddress, String netSSID,\r
String netPWD, int connectivityType) {\r
+ Log.i(TAG, "JNI start provisioning is called ");\r
easySetupManagerNativeInstance.provisionEnrollee(ipAddress, netSSID,\r
netPWD, connectivityType);\r
}\r
\r
public void stopEnrolleeProvisioning(int connectivityType) {\r
+ Log.i(TAG, "JNI stop provisioning is called ");\r
easySetupManagerNativeInstance\r
.stopEnrolleeProvisioning(connectivityType);\r
}\r
\r
public void ProvisioningStatusCallBack(int statuscode) {\r
Log.d(TAG,\r
- "onFinishProvisioning() inside Android Java application. statuscode - "\r
+ "JNI onFinishProvisioning() inside Android Java application. statuscode - "\r
+ statuscode);\r
this.provisioningListener.onFinishProvisioning(statuscode);\r
}\r
this.provisioningListener = provisioningListener;\r
EasySetupCallbackHandler.getInstance()\r
.registerProvisioningHandler(this);\r
+ Log.i(TAG, "JNI Callback is registered for getting provisioning status");\r
}\r
}\r
* </p>
*/
public class WiFiSoftAPManager {
+ private static final String TAG = WiFiSoftAPManager.class.getName();
private final WifiManager mWifiManager;
private Context context;
static ArrayList<EnrolleeOnBoardingInfo> appNotification =
public boolean setWifiApEnabled(WifiConfiguration wifiConfig,
boolean enabled) {
try {
+ appNotification.clear();
// Stopping Wi-Fi mode
if (enabled) {
mWifiManager.setWifiEnabled(false);
this.finishListener = finishListener;
Runnable runnable = new Runnable() {
public void run() {
+ Log.i(TAG, "Scanning enrolling device in the network" );
BufferedReader bufferedReader = null;
void NotifyApplication(final EnrolleeInfo result) {
// Get a handler that can be used to post to the main thread
+/*
Handler mainHandler = new Handler(context.getMainLooper());
Runnable myRunnable = new Runnable() {
@Override
}
};
mainHandler.post(myRunnable);
+*/
+ Log.i(TAG, "Scanning is finished with result, IP : " + result.getIpAddr() + "Notifying to Application");
+ finishListener.deviceOnBoardingStatus(result);
+
}
}
static OCProvisioningStatusCB cbData = NULL;
OCStackResult InitEasySetupManager() {
-
-
+
+
OCStackResult result = OC_STACK_ERROR;
if (InitProvisioningHandler() == OC_STACK_OK) {
OCStackResult ProvisionEnrollee(const EnrolleeNWProvInfo_t *netInfo)
{
- return StartProvisioningProcess(netInfo, cbData);
+ return StartProvisioningProcess(netInfo, cbData);
}
OCStackResult StopEnrolleeProvisioning(OCConnectivityType connectivityType) {
{
ProvisioningInfo *provInfo = GetCallbackObjectOnError(status);
cbData(provInfo);
+ ResetProgress();
}
OCStackResult InitProvisioningHandler()
ca_cond_free(g_provisioningCond);
return OC_STACK_ERROR;
}
+
+ ResetProgress();
+
return OC_STACK_OK;
}
{
ProvisioningInfo *provInfo = GetCallbackObjectOnSuccess(clientResponse, DEVICE_PROVISIONED);
cbData(provInfo);
+ ResetProgress();
}
bool ClearMemory()