├── .gitignore ├── Documents ├── Battery-Management.md ├── README.md ├── User-Guide-For-Android-M.md └── 简体中文版 │ ├── Battery-Management.md │ ├── README.md │ └── User-Guide-For-Android-M.md ├── README.md ├── Samples ├── BootCompleted │ ├── .gitignore │ ├── .idea │ │ ├── caches │ │ │ └── build_file_checksums.ser │ │ ├── codeStyles │ │ │ └── Project.xml │ │ ├── dictionaries │ │ │ └── sensoro.xml │ │ ├── encodings.xml │ │ ├── gradle.xml │ │ ├── misc.xml │ │ ├── modules.xml │ │ └── runConfigurations.xml │ ├── BootCompleted.iml │ ├── README.md │ ├── app │ │ ├── .gitignore │ │ ├── app.iml │ │ ├── build.gradle │ │ ├── libs │ │ │ ├── sensoro-beacon-kit-4.3.jar │ │ │ ├── sensoro-scanner-1.0.1.jar │ │ │ └── sensorocloud-4.1.2.jar │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── androidTest │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── sensoro │ │ │ │ └── bootcompleted │ │ │ │ └── ApplicationTest.java │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── sensoro │ │ │ │ └── bootcompleted │ │ │ │ ├── BootCompletedBroadcastReceiver.java │ │ │ │ ├── Constant.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── MyApplication.java │ │ │ │ └── MyService.java │ │ │ └── res │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── menu │ │ │ └── menu_main.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_sensoro.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ │ └── values │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── 简体中文版 │ │ └── README.md ├── README.md ├── YunZi-AS │ ├── .gitignore │ ├── .idea │ │ ├── caches │ │ │ └── build_file_checksums.ser │ │ ├── codeStyles │ │ │ └── Project.xml │ │ ├── dictionaries │ │ │ └── sensoro.xml │ │ ├── encodings.xml │ │ ├── gradle.xml │ │ ├── misc.xml │ │ ├── modules.xml │ │ ├── runConfigurations.xml │ │ └── vcs.xml │ ├── app │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── libs │ │ │ ├── sensoro-beacon-kit-4.3.jar │ │ │ ├── sensoro-scanner-1.0.1.jar │ │ │ └── sensorocloud-4.1.2.jar │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── androidTest │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── sensoro │ │ │ │ └── smartcity │ │ │ │ └── yunzi_as │ │ │ │ └── ExampleInstrumentedTest.java │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── assets │ │ │ │ └── fontawesome-webfont.ttf │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ ├── meg7 │ │ │ │ │ └── widget │ │ │ │ │ │ ├── BaseImageView.java │ │ │ │ │ │ ├── CircleImageView.java │ │ │ │ │ │ ├── CustomShapeImageView.java │ │ │ │ │ │ ├── CustomShapeSquareImageView.java │ │ │ │ │ │ ├── RectangleImageView.java │ │ │ │ │ │ └── SvgImageView.java │ │ │ │ │ ├── sensoro │ │ │ │ │ └── experience │ │ │ │ │ │ └── tool │ │ │ │ │ │ ├── BeaconsFragment.java │ │ │ │ │ │ ├── DetailFragment.java │ │ │ │ │ │ ├── DistanceFragment.java │ │ │ │ │ │ ├── FrameAnimationController.java │ │ │ │ │ │ ├── LightFragment.java │ │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ │ ├── MoveFragment.java │ │ │ │ │ │ ├── MyApp.java │ │ │ │ │ │ ├── NotificationFragment.java │ │ │ │ │ │ ├── PermissionUtils.java │ │ │ │ │ │ ├── PermissionsResultObserve.java │ │ │ │ │ │ ├── RangeFragment.java │ │ │ │ │ │ ├── SwitchButton.java │ │ │ │ │ │ ├── TTFIcon.java │ │ │ │ │ │ └── TemperatureFragment.java │ │ │ │ │ └── svgandroid │ │ │ │ │ ├── ParserHelper.java │ │ │ │ │ ├── SVG.java │ │ │ │ │ ├── SVGParseException.java │ │ │ │ │ └── SVGParser.java │ │ │ └── res │ │ │ │ ├── anim │ │ │ │ └── earth_anim.xml │ │ │ │ ├── drawable-hdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── drawable-mdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── drawable-v24 │ │ │ │ └── ic_launcher_foreground.xml │ │ │ │ ├── drawable-xhdpi │ │ │ │ ├── earth_1.png │ │ │ │ ├── earth_10.png │ │ │ │ ├── earth_11.png │ │ │ │ ├── earth_12.png │ │ │ │ ├── earth_13.png │ │ │ │ ├── earth_14.png │ │ │ │ ├── earth_15.png │ │ │ │ ├── earth_16.png │ │ │ │ ├── earth_17.png │ │ │ │ ├── earth_18.png │ │ │ │ ├── earth_2.png │ │ │ │ ├── earth_3.png │ │ │ │ ├── earth_4.png │ │ │ │ ├── earth_5.png │ │ │ │ ├── earth_6.png │ │ │ │ ├── earth_7.png │ │ │ │ ├── earth_8.png │ │ │ │ ├── earth_9.png │ │ │ │ └── ic_launcher.png │ │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── background_circle.xml │ │ │ │ ├── bottom.png │ │ │ │ ├── btn_pressed.png │ │ │ │ ├── btn_unpressed.png │ │ │ │ ├── fragment_range_far_circle.xml │ │ │ │ ├── fragment_range_immediate_circle.xml │ │ │ │ ├── fragment_range_near_circle.xml │ │ │ │ ├── frame.png │ │ │ │ ├── green.png │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── mask.png │ │ │ │ ├── red.png │ │ │ │ ├── yellow.png │ │ │ │ ├── yunzi_4aa.png │ │ │ │ ├── yunzi_a0.png │ │ │ │ └── yunzi_b0.png │ │ │ │ ├── drawable │ │ │ │ └── ic_launcher_background.xml │ │ │ │ ├── layout │ │ │ │ ├── activity_main.xml │ │ │ │ ├── fragment_beacons.xml │ │ │ │ ├── fragment_beacons_grid_item.xml │ │ │ │ ├── fragment_detail.xml │ │ │ │ ├── fragment_detail_grid_item.xml │ │ │ │ ├── fragment_distance.xml │ │ │ │ ├── fragment_light.xml │ │ │ │ ├── fragment_move.xml │ │ │ │ ├── fragment_notification.xml │ │ │ │ ├── fragment_range.xml │ │ │ │ ├── fragment_temperature.xml │ │ │ │ ├── title.xml │ │ │ │ └── title_main.xml │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── values-zh │ │ │ │ └── strings.xml │ │ │ │ └── values │ │ │ │ ├── attr.xml │ │ │ │ ├── color.xml │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── sensoro │ │ │ └── smartcity │ │ │ └── yunzi_as │ │ │ └── ExampleUnitTest.java │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── Yunzi-Android │ ├── .classpath │ ├── .idea │ │ ├── Yunzi-Android.iml │ │ ├── encodings.xml │ │ ├── misc.xml │ │ ├── modules.xml │ │ └── workspace.xml │ ├── .project │ ├── .settings │ │ └── org.eclipse.jdt.core.prefs │ ├── AndroidManifest.xml │ ├── README.md │ ├── assets │ │ └── fontawesome-webfont.ttf │ ├── ic_launcher-web.png │ ├── libs │ │ ├── android-async-http-1.4.6.jar │ │ ├── android-support-v4.jar │ │ ├── sensoro-beacon-kit-4.3.jar │ │ ├── sensoro-scanner-1.0.1.jar │ │ └── sensorocloud-4.1.1.jar │ ├── lint.xml │ ├── proguard-project.txt │ ├── project.properties │ ├── raw │ │ ├── shape_5.svg │ │ ├── shape_circle_2.svg │ │ ├── shape_flower.svg │ │ ├── shape_heart.svg │ │ ├── shape_star.svg │ │ ├── shape_star_2.svg │ │ └── shape_star_3.svg │ ├── res │ │ ├── anim │ │ │ └── earth_anim.xml │ │ ├── drawable-hdpi │ │ │ └── ic_launcher.png │ │ ├── drawable-mdpi │ │ │ └── ic_launcher.png │ │ ├── drawable-xhdpi │ │ │ ├── earth_1.png │ │ │ ├── earth_10.png │ │ │ ├── earth_11.png │ │ │ ├── earth_12.png │ │ │ ├── earth_13.png │ │ │ ├── earth_14.png │ │ │ ├── earth_15.png │ │ │ ├── earth_16.png │ │ │ ├── earth_17.png │ │ │ ├── earth_18.png │ │ │ ├── earth_2.png │ │ │ ├── earth_3.png │ │ │ ├── earth_4.png │ │ │ ├── earth_5.png │ │ │ ├── earth_6.png │ │ │ ├── earth_7.png │ │ │ ├── earth_8.png │ │ │ ├── earth_9.png │ │ │ └── ic_launcher.png │ │ ├── drawable-xxhdpi │ │ │ ├── background_circle.xml │ │ │ ├── bottom.png │ │ │ ├── btn_pressed.png │ │ │ ├── btn_unpressed.png │ │ │ ├── fragment_range_far_circle.xml │ │ │ ├── fragment_range_immediate_circle.xml │ │ │ ├── fragment_range_near_circle.xml │ │ │ ├── frame.png │ │ │ ├── green.png │ │ │ ├── ic_launcher.png │ │ │ ├── mask.png │ │ │ ├── red.png │ │ │ ├── yellow.png │ │ │ ├── yunzi_4aa.png │ │ │ ├── yunzi_a0.png │ │ │ └── yunzi_b0.png │ │ ├── layout │ │ │ ├── activity_main.xml │ │ │ ├── fragment_beacons.xml │ │ │ ├── fragment_beacons_grid_item.xml │ │ │ ├── fragment_detail.xml │ │ │ ├── fragment_detail_grid_item.xml │ │ │ ├── fragment_distance.xml │ │ │ ├── fragment_light.xml │ │ │ ├── fragment_move.xml │ │ │ ├── fragment_notification.xml │ │ │ ├── fragment_range.xml │ │ │ ├── fragment_temperature.xml │ │ │ ├── title.xml │ │ │ └── title_main.xml │ │ ├── values-zh │ │ │ └── strings.xml │ │ └── values │ │ │ ├── attr.xml │ │ │ ├── color.xml │ │ │ ├── dimens.xml │ │ │ └── strings.xml │ ├── src │ │ └── com │ │ │ ├── meg7 │ │ │ └── widget │ │ │ │ ├── BaseImageView.java │ │ │ │ ├── CircleImageView.java │ │ │ │ ├── CustomShapeImageView.java │ │ │ │ ├── CustomShapeSquareImageView.java │ │ │ │ ├── RectangleImageView.java │ │ │ │ └── SvgImageView.java │ │ │ ├── sensoro │ │ │ └── experience │ │ │ │ └── tool │ │ │ │ ├── BeaconsFragment.java │ │ │ │ ├── DetailFragment.java │ │ │ │ ├── DistanceFragment.java │ │ │ │ ├── FrameAnimationController.java │ │ │ │ ├── LightFragment.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── MoveFragment.java │ │ │ │ ├── MyApp.java │ │ │ │ ├── NotificationFragment.java │ │ │ │ ├── RangeFragment.java │ │ │ │ ├── SwitchButton.java │ │ │ │ ├── TTFIcon.java │ │ │ │ └── TemperatureFragment.java │ │ │ └── svgandroid │ │ │ ├── ParserHelper.java │ │ │ ├── SVG.java │ │ │ ├── SVGParseException.java │ │ │ └── SVGParser.java │ └── 简体中文版 │ │ └── README.md └── 简体中文版 │ └── README.md ├── SensoroSDK ├── android-async-http-1.4.6.jar ├── doc │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── com │ │ └── sensoro │ │ │ ├── beacon │ │ │ └── kit │ │ │ │ ├── BaseSettings.html │ │ │ │ ├── Beacon.MovingState.html │ │ │ │ ├── Beacon.Proximity.html │ │ │ │ ├── Beacon.html │ │ │ │ ├── BeaconManagerListener.html │ │ │ │ ├── SensorSettings.FlashLightCommand.html │ │ │ │ ├── SensorSettings.html │ │ │ │ ├── SensoroBeaconConnection.BeaconConnectionCallback.html │ │ │ │ ├── SensoroBeaconConnection.SensoroException.html │ │ │ │ ├── SensoroBeaconConnection.html │ │ │ │ ├── SensoroBeaconConnectionV4.BeaconConnectionCallback.html │ │ │ │ ├── SensoroBeaconConnectionV4.SensorListener.html │ │ │ │ ├── SensoroBeaconConnectionV4.WriteCallback.html │ │ │ │ ├── SensoroBeaconConnectionV4.html │ │ │ │ ├── connection │ │ │ │ ├── BeaconConfiguration.Builder.html │ │ │ │ ├── BeaconConfiguration.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ │ ├── constants │ │ │ │ ├── AccelerometerSensitivity.html │ │ │ │ ├── AdvertisingInterval.html │ │ │ │ ├── EddystoneTLMInterval.html │ │ │ │ ├── EnergySavingMode.html │ │ │ │ ├── ResultCode.html │ │ │ │ ├── SecureBroadcastInterval.html │ │ │ │ ├── TransmitPower.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ └── cloud │ │ │ ├── BackgroundPowerSaver.html │ │ │ ├── SensoroManager.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-files │ │ ├── index-1.html │ │ ├── index-10.html │ │ ├── index-11.html │ │ ├── index-12.html │ │ ├── index-13.html │ │ ├── index-14.html │ │ ├── index-15.html │ │ ├── index-16.html │ │ ├── index-17.html │ │ ├── index-18.html │ │ ├── index-2.html │ │ ├── index-3.html │ │ ├── index-4.html │ │ ├── index-5.html │ │ ├── index-6.html │ │ ├── index-7.html │ │ ├── index-8.html │ │ └── index-9.html │ ├── index.html │ ├── overview-frame.html │ ├── overview-summary.html │ ├── overview-tree.html │ ├── package-list │ ├── resources │ │ ├── background.gif │ │ ├── tab.gif │ │ ├── titlebar.gif │ │ └── titlebar_end.gif │ ├── serialized-form.html │ └── stylesheet.css ├── sensoro-beacon-kit-4.3.jar ├── sensoro-scanner-1.0.1.jar ├── sensoro-sensor-kit.jar └── sensorocloud-4.1.2.jar ├── changelog.md └── 简体中文版 └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | # Built application files 2 | *.apk 3 | *.ap_ 4 | 5 | # Files for the Dalvik VM 6 | *.dex 7 | 8 | # Java class files 9 | *.class 10 | 11 | # Generated files 12 | bin/ 13 | gen/ 14 | 15 | # Gradle files 16 | .gradle/ 17 | build/ 18 | 19 | # Local configuration file (sdk path, etc) 20 | local.properties 21 | 22 | # Proguard folder generated by Eclipse 23 | proguard/ 24 | 25 | # Log Files 26 | *.log 27 | 28 | # MAC 29 | .DS_Store 30 | -------------------------------------------------------------------------------- /Documents/README.md: -------------------------------------------------------------------------------- 1 | # Sensoro SDK Documents 2 | 3 | > Author:Sensoro 4 | > 5 | > Version:1.1 6 | > 7 | > Date:2015-10-27 18:12:17 8 | 9 | This document contains some references about using SENSORO SDK. 10 | 11 | - [Battery-Management.md](https://github.com/Sensoro/SDK-Android/blob/master/Documents/Battery-Management.md) 12 | 13 | Describe the principle of SENSORO SDK working in background mode. Also, it shows some measurement result about energy consumption of SDK in background mode. 14 | 15 | - [User-Guide-For-Android-M.md](https://github.com/Sensoro/SDK-Android/blob/master/Documents/User-Guide-For-Android-M.md) 16 | 17 | Describe how to use SENSORO SDK in Android 6.0. 18 | 19 | -------------------------------------------------------------------------------- /Documents/简体中文版/README.md: -------------------------------------------------------------------------------- 1 | # Sensoro SDK Documents 2 | 3 | > 作者:Sensoro 4 | > 5 | > 版本:v1.0 6 | > 7 | > 时间:2015年05月18日 8 | 9 | 该文档主要介绍了与 Sensoro SDK 相关的参考文档。 10 | 11 | - BatteryManager.md 12 | 13 | 详细讲解了 Sensoro SDK 后台工作模式及原理,以及在后台模式下 SDK 的功耗表现,同时给出一些实测结果供用户参考。 14 | 15 | -------------------------------------------------------------------------------- /Documents/简体中文版/User-Guide-For-Android-M.md: -------------------------------------------------------------------------------- 1 | SENSORO SDK 在 Android 6.0 中的使用 2 | ================= 3 | 4 | > 作者:SENSORO 5 | > 6 | > 版本:v1.0 7 | > 8 | > 日期:2015-10-27 18:55:21 9 | 10 | ### 背景介绍 11 | 在 Android 6.0 系统中,Google 将 BLE 的设备扫描与位置服务相关联。经测试,在开发中过程中,如果想要成功检测到 BLE 设备,必须申请访问位置服务权限 `ACCESS_FINE_LOCATION` 或者 `ACCESS_COARSE_LOCATION`。 12 | 13 | 而在 Android 6.0 系统中, 新的权限机制 `Runtime Permissions` 需要在 App 运行时获得权限,因此在使用 SDK 的过程中,App 需要动态申请上述权限来保证正常运行。 14 | 15 | *说明:在 Android 6.0+ 中,App 在运行过程中,必须保持定位开启,才能成功扫描到 BLE 设备。* 16 | 17 | ### 使用方法 18 | 19 | > 以下的方法适用于 targetSdkVersion >= 23 的 App,targetSdkVersion < 23 的 App 可以暂不用考虑 20 | 21 | 在 AndroidManifest.xml 文件中添加权限申请: 22 | 23 | ``` 24 | 25 | ``` 26 | 27 | 在 App 启动的第一个 Acitivy 中 `onCreate` 函数中添加以下代码: 28 | 29 | ``` 30 | ... 31 | @Override 32 | protected void onCreate(Bundle savedInstanceState) { 33 | super.onCreate(savedInstanceState); 34 | setContentView(R.layout.activity_main); 35 | 36 | requirePermission(); 37 | } 38 | 39 | @Override 40 | public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 41 | super.onRequestPermissionsResult(requestCode, permissions, grantResults); 42 | switch (requestCode) { 43 | case MY_PERMISSIONS_REQUEST_ACCESS_COARSE_LOCATION: { 44 | // If request is cancelled, the result arrays are empty. 45 | if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 46 | // 用户授权成功 47 | Log.v(TAG,"permission was granted"); 48 | // 业务逻辑 49 | } else { 50 | // 申请权限被用户拒绝,相关功能不可使用 51 | Log.v(TAG,"permission denied"); 52 | } 53 | } 54 | // 其他 'case' 可能是 App 申请的其他权限 55 | } 56 | } 57 | 58 | public void requirePermission(){ 59 | if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M){ 60 | // 业务逻辑 61 | } else { 62 | // 是否应该给用户提示说明? 63 | if (ContextCompat.checkSelfPermission(this,Manifest.permission.ACCESS_COARSE_LOCATION) 64 | != PackageManager.PERMISSION_GRANTED) { 65 | if (ActivityCompat.shouldShowRequestPermissionRationale(this, 66 | Manifest.permission.ACCESS_COARSE_LOCATION)) { 67 | // 异步方式提示用户,不要阻塞在这等待用户响应。当用户看到提示之后,尝试重新获取权限 68 | Log.v(TAG, "Show an expanation to the user *asynchronously*"); 69 | } else { 70 | // 不需要提示说明,直接获取权限 71 | Log.v(TAG,"// No explanation needed, we can request the permission."); 72 | ActivityCompat.requestPermissions(this,new String[]{ 73 | Manifest.permission.ACCESS_COARSE_LOCATION}, 74 | MY_PERMISSIONS_REQUEST_ACCESS_COARSE_LOCATION); 75 | } 76 | } else { 77 | // 业务逻辑 78 | } 79 | } 80 | } 81 | ... 82 | ``` -------------------------------------------------------------------------------- /Samples/BootCompleted/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | /.idea/libraries 5 | .DS_Store 6 | /build 7 | /captures 8 | -------------------------------------------------------------------------------- /Samples/BootCompleted/.idea/caches/build_file_checksums.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/BootCompleted/.idea/caches/build_file_checksums.ser -------------------------------------------------------------------------------- /Samples/BootCompleted/.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 15 | 16 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Samples/BootCompleted/.idea/dictionaries/sensoro.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Samples/BootCompleted/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Samples/BootCompleted/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | -------------------------------------------------------------------------------- /Samples/BootCompleted/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 27 | 28 | 29 | 30 | 31 | 32 | 34 | -------------------------------------------------------------------------------- /Samples/BootCompleted/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Samples/BootCompleted/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /Samples/BootCompleted/BootCompleted.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Samples/BootCompleted/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /Samples/BootCompleted/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 21 5 | buildToolsVersion "21.1.2" 6 | 7 | defaultConfig { 8 | applicationId "com.sensoro.bootcompleted" 9 | minSdkVersion 18 10 | targetSdkVersion 21 11 | versionCode 1 12 | versionName "1.0" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(include: ['*.jar'], dir: 'libs') 24 | compile 'com.android.support:appcompat-v7:21.0.3' 25 | //gson 26 | compile 'com.google.code.gson:gson:2.8.5' 27 | //依赖lib 28 | compile files('libs/sensorocloud-4.1.2.jar') 29 | compile files('libs/sensoro-scanner-1.0.1.jar') 30 | compile files('libs/sensoro-beacon-kit-4.3.jar') 31 | //网络请求包 32 | compile 'com.loopj.android:android-async-http:1.4.9' 33 | compile 'org.apache.httpcomponents:httpcore:4.4.1' 34 | // compile files('libs/greendao-1.3.7.jar') 35 | } 36 | -------------------------------------------------------------------------------- /Samples/BootCompleted/app/libs/sensoro-beacon-kit-4.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/BootCompleted/app/libs/sensoro-beacon-kit-4.3.jar -------------------------------------------------------------------------------- /Samples/BootCompleted/app/libs/sensoro-scanner-1.0.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/BootCompleted/app/libs/sensoro-scanner-1.0.1.jar -------------------------------------------------------------------------------- /Samples/BootCompleted/app/libs/sensorocloud-4.1.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/BootCompleted/app/libs/sensorocloud-4.1.2.jar -------------------------------------------------------------------------------- /Samples/BootCompleted/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/Sensoro/Work/Android-SDK/android-sdk-macosx/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /Samples/BootCompleted/app/src/androidTest/java/com/sensoro/bootcompleted/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.sensoro.bootcompleted; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /Samples/BootCompleted/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 17 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /Samples/BootCompleted/app/src/main/java/com/sensoro/bootcompleted/BootCompletedBroadcastReceiver.java: -------------------------------------------------------------------------------- 1 | package com.sensoro.bootcompleted; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | 7 | /** 8 | * Created by Sensoro on 15/3/11. 9 | */ 10 | public class BootCompletedBroadcastReceiver extends BroadcastReceiver { 11 | static final String BOOT_COMPLETED_ACTION = "android.intent.action.BOOT_COMPLETED"; 12 | 13 | @Override 14 | public void onReceive(Context context, Intent intent) { 15 | if (intent.getAction().equals(BOOT_COMPLETED_ACTION)) { 16 | 17 | /** 18 | * Start Sensoro SDK in Activity with boot. 19 | */ 20 | // Intent bootCompletedActivityIntent = new Intent(context, MainActivity.class); 21 | // bootCompletedActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 22 | // context.startActivity(bootCompletedActivityIntent); 23 | 24 | /** 25 | * Startan Sensoro SDK in Service with boot. 26 | */ 27 | Intent bootCompletedSerivceIntent = new Intent(context, MyService.class); 28 | context.startService(bootCompletedSerivceIntent); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Samples/BootCompleted/app/src/main/java/com/sensoro/bootcompleted/Constant.java: -------------------------------------------------------------------------------- 1 | package com.sensoro.bootcompleted; 2 | 3 | /** 4 | * Created by Sensoro on 15/4/9. 5 | */ 6 | public class Constant { 7 | public static final String BLE_STATE_CHANGED_ACTION = "android.bluetooth.adapter.action.STATE_CHANGED"; 8 | } 9 | -------------------------------------------------------------------------------- /Samples/BootCompleted/app/src/main/java/com/sensoro/bootcompleted/MyApplication.java: -------------------------------------------------------------------------------- 1 | package com.sensoro.bootcompleted; 2 | 3 | import android.app.Application; 4 | import android.content.Intent; 5 | import android.util.Log; 6 | 7 | import com.sensoro.beacon.kit.Beacon; 8 | import com.sensoro.beacon.kit.BeaconManagerListener; 9 | import com.sensoro.cloud.SensoroManager; 10 | 11 | import java.util.ArrayList; 12 | 13 | /** 14 | * Created by Sensoro on 15/3/11. 15 | */ 16 | public class MyApplication extends Application implements BeaconManagerListener{ 17 | private static final String TAG = MyApplication.class.getSimpleName(); 18 | private SensoroManager sensoroManager; 19 | 20 | @Override 21 | public void onCreate() { 22 | super.onCreate(); 23 | 24 | initSensoroSDK(); 25 | 26 | /** 27 | * Start SDK in Service. 28 | */ 29 | Intent intent = new Intent(); 30 | intent.setClass(this,MyService.class); 31 | startService(intent); 32 | } 33 | 34 | /** 35 | * Initial Sensoro SDK. 36 | */ 37 | private void initSensoroSDK() { 38 | sensoroManager = SensoroManager.getInstance(getApplicationContext()); 39 | sensoroManager.setCloudServiceEnable(true); 40 | sensoroManager.addBroadcastKey("7b4b5ff594fdaf8f9fc7f2b494e400016f461205"); 41 | sensoroManager.setBeaconManagerListener(this); 42 | } 43 | 44 | /** 45 | * Start Sensoro SDK. 46 | */ 47 | public void startSensoroSDK() { 48 | try { 49 | sensoroManager.startService(); 50 | } catch (Exception e) { 51 | e.printStackTrace(); 52 | } 53 | } 54 | 55 | /** 56 | * Check whether bluetooth enabled. 57 | * @return 58 | */ 59 | public boolean isBluetoothEnabled(){ 60 | return sensoroManager.isBluetoothEnabled(); 61 | } 62 | 63 | @Override 64 | public void onNewBeacon(Beacon beacon) { 65 | /** 66 | * Check whether SDK started in logs. 67 | */ 68 | Log.v(TAG,beacon.getSerialNumber()); 69 | } 70 | 71 | @Override 72 | public void onGoneBeacon(Beacon beacon) { 73 | 74 | } 75 | 76 | @Override 77 | public void onUpdateBeacon(ArrayList arrayList) { 78 | 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /Samples/BootCompleted/app/src/main/java/com/sensoro/bootcompleted/MyService.java: -------------------------------------------------------------------------------- 1 | package com.sensoro.bootcompleted; 2 | 3 | import android.app.Service; 4 | import android.bluetooth.BluetoothAdapter; 5 | import android.content.BroadcastReceiver; 6 | import android.content.Context; 7 | import android.content.Intent; 8 | import android.content.IntentFilter; 9 | import android.os.IBinder; 10 | 11 | /** 12 | * Created by Sensoro on 15/4/9. 13 | */ 14 | public class MyService extends Service{ 15 | private static final String TAG = MyService.class.getSimpleName(); 16 | 17 | private MyApplication application; 18 | private BluetoothBroadcastReceiver bluetoothBroadcastReceiver; 19 | 20 | @Override 21 | public IBinder onBind(Intent intent) { 22 | return null; 23 | } 24 | 25 | @Override 26 | public void onCreate() { 27 | super.onCreate(); 28 | 29 | application = (MyApplication) getApplication(); 30 | bluetoothBroadcastReceiver = new BluetoothBroadcastReceiver(); 31 | registerReceiver(bluetoothBroadcastReceiver, new IntentFilter(Constant.BLE_STATE_CHANGED_ACTION)); 32 | 33 | if (application.isBluetoothEnabled()){ 34 | application.startSensoroSDK(); 35 | } else { 36 | BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 37 | bluetoothAdapter.enable(); 38 | } 39 | } 40 | 41 | @Override 42 | public void onDestroy() { 43 | super.onDestroy(); 44 | unregisterReceiver(bluetoothBroadcastReceiver); 45 | } 46 | 47 | class BluetoothBroadcastReceiver extends BroadcastReceiver { 48 | 49 | @Override 50 | public void onReceive(Context context, Intent intent) { 51 | if (intent.getAction().equals(Constant.BLE_STATE_CHANGED_ACTION)){ 52 | if (application.isBluetoothEnabled()){ 53 | application.startSensoroSDK(); 54 | } 55 | } 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /Samples/BootCompleted/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Samples/BootCompleted/app/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /Samples/BootCompleted/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/BootCompleted/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/BootCompleted/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/BootCompleted/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/BootCompleted/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/BootCompleted/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/BootCompleted/app/src/main/res/mipmap-xhdpi/ic_sensoro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/BootCompleted/app/src/main/res/mipmap-xhdpi/ic_sensoro.png -------------------------------------------------------------------------------- /Samples/BootCompleted/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/BootCompleted/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/BootCompleted/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /Samples/BootCompleted/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /Samples/BootCompleted/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | BootCompleted 3 | 4 | Hello world, Sensoro! 5 | Settings 6 | 7 | -------------------------------------------------------------------------------- /Samples/BootCompleted/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Samples/BootCompleted/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:2.2.3' 9 | 10 | // NOTE: Do not place your application dependencies here; they belong 11 | // in the individual module build.gradle files 12 | } 13 | } 14 | 15 | allprojects { 16 | repositories { 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Samples/BootCompleted/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /Samples/BootCompleted/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/BootCompleted/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Samples/BootCompleted/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Apr 10 15:27:10 PDT 2013 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip 7 | -------------------------------------------------------------------------------- /Samples/BootCompleted/gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /Samples/BootCompleted/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /Samples/README.md: -------------------------------------------------------------------------------- 1 | # Sensoro SDK Samples 2 | 3 | > Author:Sensoro 4 | > 5 | > Version:v1.1 6 | > 7 | > Date:2018/05/31/18:01:51 8 | 9 | The souce code shows some skills of how to use Sensoro SDK. 10 | 11 | - Yunzi-AS 12 | 13 | How to use Sensoro SDK in Android Studio, includs how to discover Sensoro Beacon and get information of Sensoro Beacon. 14 | 15 | - Yunzi-Android 16 | 17 | How to use Sensoro SDK in Eclipse, includs how to discover Sensoro Beacon and get information of Sensoro Beacon. 18 | 19 | - BootCompleted 20 | 21 | How to start Sensoro SDK on setup. 22 | 23 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/.gitignore: -------------------------------------------------------------------------------- 1 | # Built application files 2 | *.apk 3 | *.ap_ 4 | 5 | # Files for the ART/Dalvik VM 6 | *.dex 7 | 8 | # Java class files 9 | *.class 10 | 11 | # Generated files 12 | bin/ 13 | gen/ 14 | out/ 15 | 16 | # Gradle files 17 | .gradle/ 18 | build/ 19 | 20 | # Local configuration file (sdk path, etc) 21 | local.properties 22 | 23 | # Proguard folder generated by Eclipse 24 | proguard/ 25 | 26 | # Log Files 27 | *.log 28 | 29 | # Android Studio Navigation editor temp files 30 | .navigation/ 31 | 32 | # Android Studio captures folder 33 | captures/ 34 | #macSpecial 35 | .DS_Store 36 | 37 | # IntelliJ 38 | *.iml 39 | .idea/workspace.xml 40 | .idea/tasks.xml 41 | .idea/gradle.xml 42 | .idea/assetWizardSettings.xml 43 | .idea/dictionaries 44 | .idea/libraries 45 | .idea/caches 46 | 47 | # Keystore files 48 | # Uncomment the following line if you do not want to check your keystore files in. 49 | #*.jks 50 | 51 | # External native build folder generated in Android Studio 2.2 and later 52 | .externalNativeBuild 53 | 54 | # Google Services (e.g. APIs or Firebase) 55 | google-services.json 56 | 57 | # Freeline 58 | freeline.py 59 | freeline/ 60 | freeline_project_description.json 61 | 62 | # fastlane 63 | fastlane/report.xml 64 | fastlane/Preview.html 65 | fastlane/screenshots 66 | fastlane/test_output 67 | fastlane/readme.md 68 | 69 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/.idea/caches/build_file_checksums.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/.idea/caches/build_file_checksums.ser -------------------------------------------------------------------------------- /Samples/YunZi-AS/.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 15 | 16 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/.idea/dictionaries/sensoro.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 20 | 21 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 37 | 38 | 39 | 40 | 41 | 42 | 44 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/.gitignore: -------------------------------------------------------------------------------- 1 | # Built application files 2 | *.apk 3 | *.ap_ 4 | 5 | # Files for the ART/Dalvik VM 6 | *.dex 7 | 8 | # Java class files 9 | *.class 10 | 11 | # Generated files 12 | bin/ 13 | gen/ 14 | out/ 15 | 16 | # Gradle files 17 | .gradle/ 18 | build/ 19 | 20 | # Local configuration file (sdk path, etc) 21 | local.properties 22 | 23 | # Proguard folder generated by Eclipse 24 | proguard/ 25 | 26 | # Log Files 27 | *.log 28 | 29 | # Android Studio Navigation editor temp files 30 | .navigation/ 31 | 32 | # Android Studio captures folder 33 | captures/ 34 | #macSpecial 35 | .DS_Store 36 | 37 | # IntelliJ 38 | *.iml 39 | .idea/workspace.xml 40 | .idea/tasks.xml 41 | .idea/gradle.xml 42 | .idea/assetWizardSettings.xml 43 | .idea/dictionaries 44 | .idea/libraries 45 | .idea/caches 46 | 47 | # Keystore files 48 | # Uncomment the following line if you do not want to check your keystore files in. 49 | #*.jks 50 | 51 | # External native build folder generated in Android Studio 2.2 and later 52 | .externalNativeBuild 53 | 54 | # Google Services (e.g. APIs or Firebase) 55 | google-services.json 56 | 57 | # Freeline 58 | freeline.py 59 | freeline/ 60 | freeline_project_description.json 61 | 62 | # fastlane 63 | fastlane/report.xml 64 | fastlane/Preview.html 65 | fastlane/screenshots 66 | fastlane/test_output 67 | fastlane/readme.md 68 | 69 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 27 5 | defaultConfig { 6 | applicationId "com.sensoro.experience.tool" 7 | minSdkVersion 18 8 | targetSdkVersion 27 9 | versionCode 1 10 | versionName "1.0" 11 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 12 | } 13 | buildTypes { 14 | release { 15 | minifyEnabled false 16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 17 | } 18 | } 19 | } 20 | 21 | dependencies { 22 | implementation fileTree(include: ['*.jar'], dir: 'libs') 23 | implementation 'com.android.support:appcompat-v7:27.1.1' 24 | implementation 'com.android.support.constraint:constraint-layout:1.1.0' 25 | testImplementation 'junit:junit:4.12' 26 | androidTestImplementation 'com.android.support.test:runner:1.0.2' 27 | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' 28 | implementation files('libs/sensoro-beacon-kit-4.3.jar') 29 | implementation files('libs/sensoro-scanner-1.0.1.jar') 30 | implementation 'com.google.code.gson:gson:2.8.5' 31 | implementation 'com.loopj.android:android-async-http:1.4.9' 32 | implementation 'org.apache.httpcomponents:httpcore:4.4.1' 33 | implementation files('libs/sensorocloud-4.1.2.jar') 34 | } 35 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/libs/sensoro-beacon-kit-4.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/libs/sensoro-beacon-kit-4.3.jar -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/libs/sensoro-scanner-1.0.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/libs/sensoro-scanner-1.0.1.jar -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/libs/sensorocloud-4.1.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/libs/sensorocloud-4.1.2.jar -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/androidTest/java/com/sensoro/smartcity/yunzi_as/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.sensoro.smartcity.yunzi_as; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumented test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("com.sensoro.smartcity.yunzi_as", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 33 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/assets/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/assets/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/java/com/meg7/widget/CircleImageView.java: -------------------------------------------------------------------------------- 1 | package com.meg7.widget; 2 | 3 | import android.content.Context; 4 | import android.graphics.Bitmap; 5 | import android.graphics.Canvas; 6 | import android.graphics.Color; 7 | import android.graphics.Paint; 8 | import android.graphics.RectF; 9 | import android.util.AttributeSet; 10 | 11 | /** 12 | * Created by Mostafa Gazar on 11/2/13. 13 | */ 14 | public class CircleImageView extends BaseImageView { 15 | 16 | public CircleImageView(Context context) { 17 | super(context); 18 | } 19 | 20 | public CircleImageView(Context context, AttributeSet attrs) { 21 | super(context, attrs); 22 | } 23 | 24 | public CircleImageView(Context context, AttributeSet attrs, int defStyle) { 25 | super(context, attrs, defStyle); 26 | } 27 | 28 | public static Bitmap getBitmap(int width, int height) { 29 | Bitmap bitmap = Bitmap.createBitmap(width, height, 30 | Bitmap.Config.ARGB_8888); 31 | Canvas canvas = new Canvas(bitmap); 32 | Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 33 | paint.setColor(Color.BLACK); 34 | canvas.drawOval(new RectF(0.0f, 0.0f, width, height), paint); 35 | 36 | return bitmap; 37 | } 38 | 39 | @Override 40 | public Bitmap getBitmap() { 41 | return getBitmap(getWidth(), getHeight()); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/java/com/meg7/widget/CustomShapeImageView.java: -------------------------------------------------------------------------------- 1 | package com.meg7.widget; 2 | 3 | import com.sensoro.experience.tool.R; 4 | 5 | import android.content.Context; 6 | import android.content.res.TypedArray; 7 | import android.graphics.Bitmap; 8 | import android.util.AttributeSet; 9 | 10 | /** 11 | * Created by Mostafa Gazar on 11/2/13. 12 | */ 13 | public class CustomShapeImageView extends BaseImageView { 14 | 15 | public static class Shape { 16 | public static final int CIRCLE = 1; 17 | public static final int RECTANGLE = 2; 18 | public static final int SVG = 3; 19 | } 20 | 21 | private int mShape = Shape.CIRCLE; 22 | private int mSvgRawResourceId; 23 | 24 | public CustomShapeImageView(Context context) { 25 | super(context); 26 | } 27 | 28 | public CustomShapeImageView(Context context, int resourceId, int shape, int svgRawResourceId) { 29 | this(context); 30 | 31 | setImageResource(resourceId); 32 | mShape = shape; 33 | mSvgRawResourceId = svgRawResourceId; 34 | } 35 | 36 | public CustomShapeImageView(Context context, AttributeSet attrs) { 37 | super(context, attrs); 38 | sharedConstructor(context, attrs); 39 | } 40 | 41 | public CustomShapeImageView(Context context, AttributeSet attrs, int defStyle) { 42 | super(context, attrs, defStyle); 43 | sharedConstructor(context, attrs); 44 | } 45 | 46 | private void sharedConstructor(Context context, AttributeSet attrs) { 47 | TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomShapeImageView); 48 | mShape = a.getInt(R.styleable.CustomShapeImageView_shape, Shape.CIRCLE); 49 | mSvgRawResourceId = a.getResourceId(R.styleable.CustomShapeImageView_svg_raw_resource, 0); 50 | a.recycle(); 51 | } 52 | 53 | @Override 54 | public Bitmap getBitmap() { 55 | switch (mShape) { 56 | case Shape.CIRCLE: 57 | return CircleImageView.getBitmap(getWidth(), getHeight()); 58 | case Shape.RECTANGLE: 59 | return RectangleImageView.getBitmap(getWidth(), getHeight()); 60 | case Shape.SVG: 61 | return SvgImageView.getBitmap(mContext, getWidth(), getHeight(), mSvgRawResourceId); 62 | } 63 | return null; 64 | } 65 | 66 | } 67 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/java/com/meg7/widget/CustomShapeSquareImageView.java: -------------------------------------------------------------------------------- 1 | package com.meg7.widget; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | import android.widget.ImageView; 6 | 7 | public class CustomShapeSquareImageView extends CustomShapeImageView { 8 | 9 | public CustomShapeSquareImageView(Context context, int resourceId, int shape, int svgRawResourceId) { 10 | super(context, resourceId, shape, svgRawResourceId); 11 | } 12 | public CustomShapeSquareImageView(Context context) { 13 | super(context); 14 | } 15 | 16 | public CustomShapeSquareImageView(Context context, AttributeSet attrs) { 17 | super(context, attrs); 18 | } 19 | 20 | public CustomShapeSquareImageView(Context context, AttributeSet attrs, int defStyle) { 21 | super(context, attrs, defStyle); 22 | } 23 | 24 | @Override 25 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 26 | super.onMeasure(widthMeasureSpec, heightMeasureSpec); 27 | setMeasuredDimension(getMeasuredWidth(), getMeasuredWidth()); 28 | } 29 | } -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/java/com/meg7/widget/RectangleImageView.java: -------------------------------------------------------------------------------- 1 | package com.meg7.widget; 2 | 3 | import android.content.Context; 4 | import android.graphics.Bitmap; 5 | import android.graphics.Canvas; 6 | import android.graphics.Color; 7 | import android.graphics.Paint; 8 | import android.graphics.RectF; 9 | import android.util.AttributeSet; 10 | 11 | /** 12 | * Created by Mostafa Gazar on 11/2/13. 13 | */ 14 | public class RectangleImageView extends BaseImageView { 15 | 16 | public RectangleImageView(Context context) { 17 | super(context); 18 | } 19 | 20 | public RectangleImageView(Context context, AttributeSet attrs) { 21 | super(context, attrs); 22 | } 23 | 24 | public RectangleImageView(Context context, AttributeSet attrs, int defStyle) { 25 | super(context, attrs, defStyle); 26 | } 27 | 28 | public static Bitmap getBitmap(int width, int height) { 29 | Bitmap bitmap = Bitmap.createBitmap(width, height, 30 | Bitmap.Config.ARGB_8888); 31 | Canvas canvas = new Canvas(bitmap); 32 | Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 33 | paint.setColor(Color.BLACK); 34 | canvas.drawRect(new RectF(0.0f, 0.0f, width, height), paint); 35 | 36 | return bitmap; 37 | } 38 | 39 | @Override 40 | public Bitmap getBitmap() { 41 | return getBitmap(getWidth(), getHeight()); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/java/com/meg7/widget/SvgImageView.java: -------------------------------------------------------------------------------- 1 | package com.meg7.widget; 2 | 3 | import android.content.Context; 4 | import android.content.res.TypedArray; 5 | import android.graphics.Bitmap; 6 | import android.graphics.Canvas; 7 | import android.graphics.Color; 8 | import android.graphics.Paint; 9 | import android.graphics.RectF; 10 | import android.util.AttributeSet; 11 | 12 | import com.sensoro.experience.tool.R; 13 | import com.svgandroid.SVG; 14 | import com.svgandroid.SVGParser; 15 | 16 | /** 17 | * Created by Mostafa Gazar on 11/2/13. 18 | */ 19 | public class SvgImageView extends BaseImageView { 20 | 21 | private int mSvgRawResourceId; 22 | 23 | public SvgImageView(Context context) { 24 | super(context); 25 | } 26 | 27 | public SvgImageView(Context context, AttributeSet attrs) { 28 | super(context, attrs); 29 | sharedConstructor(context, attrs); 30 | } 31 | 32 | public SvgImageView(Context context, AttributeSet attrs, int defStyle) { 33 | super(context, attrs, defStyle); 34 | sharedConstructor(context, attrs); 35 | } 36 | 37 | private void sharedConstructor(Context context, AttributeSet attrs) { 38 | TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomShapeImageView); 39 | mSvgRawResourceId = a.getResourceId(R.styleable.CustomShapeImageView_svg_raw_resource, 0); 40 | a.recycle(); 41 | } 42 | 43 | public static Bitmap getBitmap(Context context, int width, int height, int svgRawResourceId) { 44 | Bitmap bitmap = Bitmap.createBitmap(width, height, 45 | Bitmap.Config.ARGB_8888); 46 | Canvas canvas = new Canvas(bitmap); 47 | Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 48 | paint.setColor(Color.BLACK); 49 | 50 | if (svgRawResourceId > 0) { 51 | SVG svg = SVGParser.getSVGFromInputStream( 52 | context.getResources().openRawResource(svgRawResourceId), width, height); 53 | canvas.drawPicture(svg.getPicture()); 54 | } else { 55 | canvas.drawRect(new RectF(0.0f, 0.0f, width, height), paint); 56 | } 57 | 58 | return bitmap; 59 | } 60 | 61 | @Override 62 | public Bitmap getBitmap() { 63 | return getBitmap(mContext, getWidth(), getHeight(), mSvgRawResourceId); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/java/com/sensoro/experience/tool/FrameAnimationController.java: -------------------------------------------------------------------------------- 1 | 2 | package com.sensoro.experience.tool; 3 | 4 | import android.os.Handler; 5 | import android.os.Message; 6 | 7 | public class FrameAnimationController { 8 | private static final int MSG_ANIMATE = 1000; 9 | 10 | public static final int ANIMATION_FRAME_DURATION = 1000 / 60; 11 | 12 | private static final Handler mHandler = new AnimationHandler(); 13 | 14 | private FrameAnimationController() { 15 | throw new UnsupportedOperationException(); 16 | } 17 | 18 | public static void requestAnimationFrame(Runnable runnable) { 19 | Message message = new Message(); 20 | message.what = MSG_ANIMATE; 21 | message.obj = runnable; 22 | mHandler.sendMessageDelayed(message, ANIMATION_FRAME_DURATION); 23 | } 24 | 25 | public static void requestFrameDelay(Runnable runnable, long delay) { 26 | Message message = new Message(); 27 | message.what = MSG_ANIMATE; 28 | message.obj = runnable; 29 | mHandler.sendMessageDelayed(message, delay); 30 | } 31 | 32 | private static class AnimationHandler extends Handler { 33 | public void handleMessage(Message m) { 34 | switch (m.what) { 35 | case MSG_ANIMATE: 36 | if (m.obj != null) { 37 | ((Runnable) m.obj).run(); 38 | } 39 | break; 40 | } 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/java/com/sensoro/experience/tool/MyApp.java: -------------------------------------------------------------------------------- 1 | package com.sensoro.experience.tool; 2 | 3 | import com.sensoro.cloud.SensoroManager; 4 | 5 | import android.app.Application; 6 | import android.os.Build; 7 | import android.util.Log; 8 | 9 | public class MyApp extends Application { 10 | 11 | private static final String TAG = MyApp.class.getSimpleName(); 12 | SensoroManager sensoroManager; 13 | 14 | @Override 15 | public void onCreate() { 16 | initSensoro(); 17 | super.onCreate(); 18 | } 19 | 20 | private void initSensoro() { 21 | sensoroManager = SensoroManager.getInstance(getApplicationContext()); 22 | sensoroManager.setCloudServiceEnable(false); 23 | sensoroManager.addBroadcastKey("01Y2GLh1yw3+6Aq0RsnOQ8xNvXTnDUTTLE937Yedd/DnlcV0ixCWo7JQ+VEWRSya80yea6u5aWgnW1ACjKNzFnig=="); 24 | try { 25 | sensoroManager.startService(); 26 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { 27 | sensoroManager.setForegroundScanPeriod(7000); 28 | } 29 | } catch (Exception e) { 30 | Log.e(TAG, e.toString()); 31 | } 32 | } 33 | 34 | @Override 35 | public void onTerminate() { 36 | if (sensoroManager != null) { 37 | sensoroManager.stopService(); 38 | } 39 | super.onTerminate(); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/java/com/sensoro/experience/tool/NotificationFragment.java: -------------------------------------------------------------------------------- 1 | package com.sensoro.experience.tool; 2 | 3 | import com.sensoro.beacon.kit.Beacon; 4 | 5 | import android.app.Activity; 6 | import android.content.SharedPreferences; 7 | import android.content.SharedPreferences.Editor; 8 | import android.os.Bundle; 9 | import android.support.v4.app.Fragment; 10 | import android.view.LayoutInflater; 11 | import android.view.MenuItem; 12 | import android.view.View; 13 | import android.view.ViewGroup; 14 | import android.widget.CompoundButton; 15 | import android.widget.CompoundButton.OnCheckedChangeListener; 16 | 17 | /* 18 | * Control the notification of beacon. 19 | */ 20 | public class NotificationFragment extends Fragment implements OnCheckedChangeListener { 21 | 22 | SwitchButton switchButton; 23 | Beacon beacon; 24 | 25 | MainActivity activity; 26 | 27 | @Override 28 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 29 | activity = (MainActivity) getActivity(); 30 | return inflater.inflate(R.layout.fragment_notification, container, false); 31 | } 32 | 33 | @Override 34 | public void onActivityCreated(Bundle savedInstanceState) { 35 | initCtrl(); 36 | setTitle(); 37 | super.onActivityCreated(savedInstanceState); 38 | } 39 | 40 | private void initCtrl() { 41 | beacon = (Beacon) getArguments().get(MainActivity.BEACON); 42 | activity = (MainActivity) getActivity(); 43 | setHasOptionsMenu(true); 44 | 45 | switchButton = (SwitchButton) activity.findViewById(R.id.fragment_notification_sb); 46 | } 47 | 48 | private void setTitle() { 49 | activity.setTitle(R.string.back); 50 | } 51 | 52 | @Override 53 | public void onResume() { 54 | initState(beacon); 55 | super.onResume(); 56 | } 57 | 58 | private void initState(Beacon beacon) { 59 | if (beacon == null) { 60 | switchButton.setChecked(false); 61 | } 62 | String key = activity.getKey(beacon); 63 | boolean state = activity.sharedPreferences.getBoolean(key, false); 64 | switchButton.setChecked(state); 65 | switchButton.setOnCheckedChangeListener(this); 66 | } 67 | 68 | @Override 69 | public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 70 | if (beacon == null) { 71 | return; 72 | } 73 | String key = activity.getKey(beacon); 74 | if (isChecked) { 75 | boolean isExist = activity.sharedPreferences.contains(key); 76 | if (isExist) { 77 | return; 78 | } 79 | Editor editor = activity.sharedPreferences.edit(); 80 | editor.putBoolean(key, true); 81 | editor.commit(); 82 | } else { 83 | Editor editor = activity.sharedPreferences.edit(); 84 | editor.remove(key); 85 | editor.commit(); 86 | } 87 | } 88 | 89 | @Override 90 | public boolean onOptionsItemSelected(MenuItem item) { 91 | int id = item.getItemId(); 92 | switch (id) { 93 | case android.R.id.home: 94 | activity.onBackPressed(); 95 | break; 96 | 97 | default: 98 | break; 99 | } 100 | return super.onOptionsItemSelected(item); 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/java/com/sensoro/experience/tool/PermissionsResultObserve.java: -------------------------------------------------------------------------------- 1 | package com.sensoro.experience.tool; 2 | 3 | /** 4 | * Created by ddong1031 on 18/4/16. 5 | */ 6 | public interface PermissionsResultObserve { 7 | void onPermissionGranted(); 8 | 9 | void onPermissionDenied(); 10 | } 11 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/java/com/sensoro/experience/tool/TTFIcon.java: -------------------------------------------------------------------------------- 1 | package com.sensoro.experience.tool; 2 | 3 | import android.content.Context; 4 | import android.graphics.Typeface; 5 | import android.util.AttributeSet; 6 | import android.widget.TextView; 7 | 8 | public class TTFIcon extends TextView { 9 | 10 | Typeface font; 11 | 12 | public TTFIcon(Context context, AttributeSet attrs) { 13 | super(context, attrs); 14 | font = Typeface.createFromAsset(context.getAssets(), "fontawesome-webfont.ttf"); 15 | this.setTypeface(font); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/java/com/svgandroid/SVGParseException.java: -------------------------------------------------------------------------------- 1 | package com.svgandroid; 2 | 3 | /** 4 | * Runtime exception thrown when there is a problem parsing an SVG. 5 | * 6 | * @author Larva Labs, LLC 7 | */ 8 | public class SVGParseException extends RuntimeException { 9 | 10 | public SVGParseException(String s) { 11 | super(s); 12 | } 13 | 14 | public SVGParseException(String s, Throwable throwable) { 15 | super(s, throwable); 16 | } 17 | 18 | public SVGParseException(Throwable throwable) { 19 | super(throwable); 20 | } 21 | } -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/anim/earth_anim.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 11 | 14 | 17 | 20 | 23 | 26 | 29 | 32 | 35 | 38 | 41 | 44 | 47 | 50 | 53 | 56 | 59 | 60 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 12 | 13 | 19 | 22 | 25 | 26 | 27 | 28 | 34 | 35 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_1.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_10.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_11.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_12.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_13.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_14.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_15.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_16.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_17.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_18.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_2.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_3.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_4.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_5.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_6.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_7.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_8.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/earth_9.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/background_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/bottom.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/btn_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/btn_pressed.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/btn_unpressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/btn_unpressed.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/fragment_range_far_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/fragment_range_immediate_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/fragment_range_near_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/frame.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/green.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/mask.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/red.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/yellow.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/yunzi_4aa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/yunzi_4aa.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/yunzi_a0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/yunzi_a0.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/yunzi_b0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/drawable-xxhdpi/yunzi_b0.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/layout/fragment_beacons.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 17 | 18 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/layout/fragment_beacons_grid_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 15 | 22 | 23 | 30 | 31 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/layout/fragment_detail_grid_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | 17 | 23 | 24 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/layout/fragment_distance.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 16 | 17 | 24 | 25 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/layout/fragment_light.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 16 | 17 | 25 | 26 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/layout/fragment_move.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 13 | 14 | 21 | 22 | 29 | 30 | 36 | 37 | 38 | 47 | 48 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/layout/fragment_notification.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | 14 | 22 | 23 | 30 | 31 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/layout/fragment_range.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 19 | 20 | 21 | 26 | 27 | 33 | 34 | 35 | 40 | 41 | 47 | 48 | 49 | 57 | 58 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/layout/fragment_temperature.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 13 | 14 | 20 | 21 | 27 | 28 | 34 | 35 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/layout/title.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | 14 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/layout/title_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 15 | 16 | 22 | 23 | 31 | 32 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/values-zh/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 云子 5 | 输入 SN 或 ID 进行搜索 6 | RSSI: 7 | 温度: 8 | 光线: 9 | 移动: 10 | 移动计数器: 11 | 型号: 12 | 固件: 13 | 电池: 14 | 15 | 16 | 是否打开蓝牙 17 | 距离: 18 | 昏暗 19 | 普通 20 | 明亮 21 | 未开启 22 | +1 23 | 当推送开关开启时, 24 | 进入和离开云子将收到推送 25 | a0 26 | b0 27 | 消失 28 | 很近 29 | 较远 30 | 较近 31 | 移动次数: 32 | 云子 33 | 返回 34 | 距离 35 | 范围 36 | 温度 37 | 光线 38 | 移动 39 | 推送 40 | 41 | 静止 42 | 运动 43 | 关闭 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | % 58 | lx 59 | 60 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/values/attr.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/values/color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #666666 4 | #EEEEEE 5 | #FFCC00 6 | #FF222222 7 | #FF9E9E9E 8 | #FFFFFF 9 | 10 | #000000 11 | 12 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12dp 4 | 35dp 5 | 20dp 6 | 20dp 7 | 20dp 8 | 60dp 9 | 10dp 10 | 10dp 11 | 6dp 12 | 13 | 20dp 14 | 10dp 15 | 16 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Yunzi 5 | Search SN or ID 6 | RSSI: 7 | Temperature: 8 | Light: 9 | Moving: 10 | Moving count: 11 | Model: 12 | Firmware: 13 | Battery: 14 | Yes 15 | No 16 | Do you want to open bluetooth 17 | Distance: 18 | Dark 19 | Normal 20 | Glare 21 | Disable 22 | +1 23 | When the switch button is open, 24 | you will receive notifications. 25 | a0 26 | b0 27 | c0 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | Disappear 39 | immediate 40 | Far 41 | Near 42 | Move count: 43 | Yunzi 44 | Back 45 | 46 | Distance 47 | Range 48 | Temperature 49 | Light 50 | Move 51 | Notification 52 | 53 | 54 | % 55 | still 56 | moving 57 | closed 58 | lx 59 | 60 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/app/src/test/java/com/sensoro/smartcity/yunzi_as/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.sensoro.smartcity.yunzi_as; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /Samples/YunZi-AS/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | 5 | repositories { 6 | google() 7 | jcenter() 8 | } 9 | dependencies { 10 | classpath 'com.android.tools.build:gradle:3.1.2' 11 | 12 | 13 | // NOTE: Do not place your application dependencies here; they belong 14 | // in the individual module build.gradle files 15 | } 16 | } 17 | 18 | allprojects { 19 | repositories { 20 | google() 21 | jcenter() 22 | } 23 | } 24 | 25 | task clean(type: Delete) { 26 | delete rootProject.buildDir 27 | } 28 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/YunZi-AS/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Samples/YunZi-AS/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu May 31 16:40:03 CST 2018 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip 7 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | set DIRNAME=%~dp0 12 | if "%DIRNAME%" == "" set DIRNAME=. 13 | set APP_BASE_NAME=%~n0 14 | set APP_HOME=%DIRNAME% 15 | 16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 17 | set DEFAULT_JVM_OPTS= 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windows variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | 53 | :win9xME_args 54 | @rem Slurp the command line arguments. 55 | set CMD_LINE_ARGS= 56 | set _SKIP=2 57 | 58 | :win9xME_args_slurp 59 | if "x%~1" == "x" goto execute 60 | 61 | set CMD_LINE_ARGS=%* 62 | 63 | :execute 64 | @rem Setup the command line 65 | 66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 67 | 68 | @rem Execute Gradle 69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 70 | 71 | :end 72 | @rem End local scope for the variables with windows NT shell 73 | if "%ERRORLEVEL%"=="0" goto mainEnd 74 | 75 | :fail 76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 77 | rem the _cmd.exe /c_ return code! 78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 79 | exit /b 1 80 | 81 | :mainEnd 82 | if "%OS%"=="Windows_NT" endlocal 83 | 84 | :omega 85 | -------------------------------------------------------------------------------- /Samples/YunZi-AS/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/.idea/Yunzi-Android.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 17 | 18 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | Yunzi-Android 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 5 | org.eclipse.jdt.core.compiler.compliance=1.6 6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 11 | org.eclipse.jdt.core.compiler.source=1.6 12 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 23 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/assets/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/assets/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /Samples/Yunzi-Android/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/ic_launcher-web.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/libs/android-async-http-1.4.6.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/libs/android-async-http-1.4.6.jar -------------------------------------------------------------------------------- /Samples/Yunzi-Android/libs/android-support-v4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/libs/android-support-v4.jar -------------------------------------------------------------------------------- /Samples/Yunzi-Android/libs/sensoro-beacon-kit-4.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/libs/sensoro-beacon-kit-4.3.jar -------------------------------------------------------------------------------- /Samples/Yunzi-Android/libs/sensoro-scanner-1.0.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/libs/sensoro-scanner-1.0.1.jar -------------------------------------------------------------------------------- /Samples/Yunzi-Android/libs/sensorocloud-4.1.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/libs/sensorocloud-4.1.1.jar -------------------------------------------------------------------------------- /Samples/Yunzi-Android/lint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/proguard-project.txt: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-24 15 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/raw/shape_5.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | image/svg+xml 46 | 47 | 54 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/raw/shape_circle_2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | image/svg+xml 46 | 47 | 54 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/raw/shape_heart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | image/svg+xml 46 | 47 | 54 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/raw/shape_star.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | image/svg+xml 46 | 47 | 54 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/raw/shape_star_2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | image/svg+xml 46 | 47 | 54 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/raw/shape_star_3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | image/svg+xml 46 | 47 | 54 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/anim/earth_anim.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 11 | 14 | 17 | 20 | 23 | 26 | 29 | 32 | 35 | 38 | 41 | 44 | 47 | 50 | 53 | 56 | 59 | 60 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xhdpi/earth_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xhdpi/earth_1.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xhdpi/earth_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xhdpi/earth_10.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xhdpi/earth_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xhdpi/earth_11.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xhdpi/earth_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xhdpi/earth_12.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xhdpi/earth_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xhdpi/earth_13.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xhdpi/earth_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xhdpi/earth_14.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xhdpi/earth_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xhdpi/earth_15.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xhdpi/earth_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xhdpi/earth_16.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xhdpi/earth_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xhdpi/earth_17.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xhdpi/earth_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xhdpi/earth_18.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xhdpi/earth_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xhdpi/earth_2.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xhdpi/earth_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xhdpi/earth_3.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xhdpi/earth_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xhdpi/earth_4.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xhdpi/earth_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xhdpi/earth_5.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xhdpi/earth_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xhdpi/earth_6.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xhdpi/earth_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xhdpi/earth_7.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xhdpi/earth_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xhdpi/earth_8.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xhdpi/earth_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xhdpi/earth_9.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xxhdpi/background_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xxhdpi/bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xxhdpi/bottom.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xxhdpi/btn_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xxhdpi/btn_pressed.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xxhdpi/btn_unpressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xxhdpi/btn_unpressed.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xxhdpi/fragment_range_far_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xxhdpi/fragment_range_immediate_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xxhdpi/fragment_range_near_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xxhdpi/frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xxhdpi/frame.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xxhdpi/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xxhdpi/green.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xxhdpi/mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xxhdpi/mask.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xxhdpi/red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xxhdpi/red.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xxhdpi/yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xxhdpi/yellow.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xxhdpi/yunzi_4aa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xxhdpi/yunzi_4aa.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xxhdpi/yunzi_a0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xxhdpi/yunzi_a0.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/drawable-xxhdpi/yunzi_b0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/res/drawable-xxhdpi/yunzi_b0.png -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/layout/fragment_beacons.xml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 17 | 18 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/layout/fragment_beacons_grid_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 15 | 22 | 23 | 30 | 31 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/layout/fragment_detail_grid_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | 17 | 23 | 24 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/layout/fragment_distance.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 16 | 17 | 24 | 25 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/layout/fragment_light.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 16 | 17 | 25 | 26 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/layout/fragment_move.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 13 | 14 | 21 | 22 | 29 | 30 | 36 | 37 | 38 | 47 | 48 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/layout/fragment_notification.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | 14 | 21 | 22 | 28 | 29 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/layout/fragment_range.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 19 | 20 | 21 | 26 | 27 | 33 | 34 | 35 | 40 | 41 | 47 | 48 | 49 | 57 | 58 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/layout/fragment_temperature.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 13 | 14 | 20 | 21 | 27 | 28 | 34 | 35 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/layout/title.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | 14 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/layout/title_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 15 | 16 | 22 | 23 | 31 | 32 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/values-zh/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 云子 5 | 输入 SN 或 ID 进行搜索 6 | RSSI: 7 | 温度: 8 | 光线: 9 | 移动: 10 | 移动计数器: 11 | 型号: 12 | 固件: 13 | 电池: 14 | 15 | 16 | 是否打开蓝牙 17 | 距离: 18 | 昏暗 19 | 普通 20 | 明亮 21 | 未开启 22 | +1 23 | 当推送开关开启时, 24 | 进入和离开云子将收到推送 25 | a0 26 | b0 27 | 消失 28 | 很近 29 | 较远 30 | 较近 31 | 移动次数: 32 | 云子 33 | 返回 34 | 距离 35 | 范围 36 | 温度 37 | 光线 38 | 移动 39 | 推送 40 | 41 | 静止 42 | 运动 43 | 关闭 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | % 58 | lx 59 | 60 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/values/attr.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/values/color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #666666 4 | #EEEEEE 5 | #FFCC00 6 | #FF222222 7 | #FF9E9E9E 8 | #FFFFFF 9 | 10 | #000000 11 | 12 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12dp 4 | 35dp 5 | 20dp 6 | 20dp 7 | 20dp 8 | 60dp 9 | 10dp 10 | 10dp 11 | 6dp 12 | 13 | 20dp 14 | 10dp 15 | 16 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Yunzi 5 | Search SN or ID 6 | RSSI: 7 | Temperature: 8 | Light: 9 | Moving: 10 | Moving count: 11 | Model: 12 | Firmware: 13 | Battery: 14 | Yes 15 | No 16 | Do you want to open bluetooth 17 | Distance: 18 | Dark 19 | Normal 20 | Glare 21 | Disable 22 | +1 23 | When the switch button is open, 24 | you will receive notifications. 25 | a0 26 | b0 27 | c0 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | Disappear 39 | immediate 40 | Far 41 | Near 42 | Move count: 43 | Yunzi 44 | Back 45 | 46 | Distance 47 | Range 48 | Temperature 49 | Light 50 | Move 51 | Notification 52 | 53 | 54 | % 55 | still 56 | moving 57 | closed 58 | lx 59 | 60 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/src/com/meg7/widget/CircleImageView.java: -------------------------------------------------------------------------------- 1 | package com.meg7.widget; 2 | 3 | import android.content.Context; 4 | import android.graphics.Bitmap; 5 | import android.graphics.Canvas; 6 | import android.graphics.Color; 7 | import android.graphics.Paint; 8 | import android.graphics.RectF; 9 | import android.util.AttributeSet; 10 | 11 | /** 12 | * Created by Mostafa Gazar on 11/2/13. 13 | */ 14 | public class CircleImageView extends BaseImageView { 15 | 16 | public CircleImageView(Context context) { 17 | super(context); 18 | } 19 | 20 | public CircleImageView(Context context, AttributeSet attrs) { 21 | super(context, attrs); 22 | } 23 | 24 | public CircleImageView(Context context, AttributeSet attrs, int defStyle) { 25 | super(context, attrs, defStyle); 26 | } 27 | 28 | public static Bitmap getBitmap(int width, int height) { 29 | Bitmap bitmap = Bitmap.createBitmap(width, height, 30 | Bitmap.Config.ARGB_8888); 31 | Canvas canvas = new Canvas(bitmap); 32 | Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 33 | paint.setColor(Color.BLACK); 34 | canvas.drawOval(new RectF(0.0f, 0.0f, width, height), paint); 35 | 36 | return bitmap; 37 | } 38 | 39 | @Override 40 | public Bitmap getBitmap() { 41 | return getBitmap(getWidth(), getHeight()); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/src/com/meg7/widget/CustomShapeImageView.java: -------------------------------------------------------------------------------- 1 | package com.meg7.widget; 2 | 3 | import com.sensoro.experience.tool.R; 4 | 5 | import android.content.Context; 6 | import android.content.res.TypedArray; 7 | import android.graphics.Bitmap; 8 | import android.util.AttributeSet; 9 | 10 | /** 11 | * Created by Mostafa Gazar on 11/2/13. 12 | */ 13 | public class CustomShapeImageView extends BaseImageView { 14 | 15 | public static class Shape { 16 | public static final int CIRCLE = 1; 17 | public static final int RECTANGLE = 2; 18 | public static final int SVG = 3; 19 | } 20 | 21 | private int mShape = Shape.CIRCLE; 22 | private int mSvgRawResourceId; 23 | 24 | public CustomShapeImageView(Context context) { 25 | super(context); 26 | } 27 | 28 | public CustomShapeImageView(Context context, int resourceId, int shape, int svgRawResourceId) { 29 | this(context); 30 | 31 | setImageResource(resourceId); 32 | mShape = shape; 33 | mSvgRawResourceId = svgRawResourceId; 34 | } 35 | 36 | public CustomShapeImageView(Context context, AttributeSet attrs) { 37 | super(context, attrs); 38 | sharedConstructor(context, attrs); 39 | } 40 | 41 | public CustomShapeImageView(Context context, AttributeSet attrs, int defStyle) { 42 | super(context, attrs, defStyle); 43 | sharedConstructor(context, attrs); 44 | } 45 | 46 | private void sharedConstructor(Context context, AttributeSet attrs) { 47 | TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomShapeImageView); 48 | mShape = a.getInt(R.styleable.CustomShapeImageView_shape, Shape.CIRCLE); 49 | mSvgRawResourceId = a.getResourceId(R.styleable.CustomShapeImageView_svg_raw_resource, 0); 50 | a.recycle(); 51 | } 52 | 53 | @Override 54 | public Bitmap getBitmap() { 55 | switch (mShape) { 56 | case Shape.CIRCLE: 57 | return CircleImageView.getBitmap(getWidth(), getHeight()); 58 | case Shape.RECTANGLE: 59 | return RectangleImageView.getBitmap(getWidth(), getHeight()); 60 | case Shape.SVG: 61 | return SvgImageView.getBitmap(mContext, getWidth(), getHeight(), mSvgRawResourceId); 62 | } 63 | return null; 64 | } 65 | 66 | } 67 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/src/com/meg7/widget/CustomShapeSquareImageView.java: -------------------------------------------------------------------------------- 1 | package com.meg7.widget; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | import android.widget.ImageView; 6 | 7 | public class CustomShapeSquareImageView extends CustomShapeImageView { 8 | 9 | public CustomShapeSquareImageView(Context context, int resourceId, int shape, int svgRawResourceId) { 10 | super(context, resourceId, shape, svgRawResourceId); 11 | } 12 | public CustomShapeSquareImageView(Context context) { 13 | super(context); 14 | } 15 | 16 | public CustomShapeSquareImageView(Context context, AttributeSet attrs) { 17 | super(context, attrs); 18 | } 19 | 20 | public CustomShapeSquareImageView(Context context, AttributeSet attrs, int defStyle) { 21 | super(context, attrs, defStyle); 22 | } 23 | 24 | @Override 25 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 26 | super.onMeasure(widthMeasureSpec, heightMeasureSpec); 27 | setMeasuredDimension(getMeasuredWidth(), getMeasuredWidth()); 28 | } 29 | } -------------------------------------------------------------------------------- /Samples/Yunzi-Android/src/com/meg7/widget/RectangleImageView.java: -------------------------------------------------------------------------------- 1 | package com.meg7.widget; 2 | 3 | import android.content.Context; 4 | import android.graphics.Bitmap; 5 | import android.graphics.Canvas; 6 | import android.graphics.Color; 7 | import android.graphics.Paint; 8 | import android.graphics.RectF; 9 | import android.util.AttributeSet; 10 | 11 | /** 12 | * Created by Mostafa Gazar on 11/2/13. 13 | */ 14 | public class RectangleImageView extends BaseImageView { 15 | 16 | public RectangleImageView(Context context) { 17 | super(context); 18 | } 19 | 20 | public RectangleImageView(Context context, AttributeSet attrs) { 21 | super(context, attrs); 22 | } 23 | 24 | public RectangleImageView(Context context, AttributeSet attrs, int defStyle) { 25 | super(context, attrs, defStyle); 26 | } 27 | 28 | public static Bitmap getBitmap(int width, int height) { 29 | Bitmap bitmap = Bitmap.createBitmap(width, height, 30 | Bitmap.Config.ARGB_8888); 31 | Canvas canvas = new Canvas(bitmap); 32 | Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 33 | paint.setColor(Color.BLACK); 34 | canvas.drawRect(new RectF(0.0f, 0.0f, width, height), paint); 35 | 36 | return bitmap; 37 | } 38 | 39 | @Override 40 | public Bitmap getBitmap() { 41 | return getBitmap(getWidth(), getHeight()); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/src/com/meg7/widget/SvgImageView.java: -------------------------------------------------------------------------------- 1 | package com.meg7.widget; 2 | 3 | import android.content.Context; 4 | import android.content.res.TypedArray; 5 | import android.graphics.Bitmap; 6 | import android.graphics.Canvas; 7 | import android.graphics.Color; 8 | import android.graphics.Paint; 9 | import android.graphics.RectF; 10 | import android.util.AttributeSet; 11 | 12 | import com.sensoro.experience.tool.R; 13 | import com.svgandroid.SVG; 14 | import com.svgandroid.SVGParser; 15 | 16 | /** 17 | * Created by Mostafa Gazar on 11/2/13. 18 | */ 19 | public class SvgImageView extends BaseImageView { 20 | 21 | private int mSvgRawResourceId; 22 | 23 | public SvgImageView(Context context) { 24 | super(context); 25 | } 26 | 27 | public SvgImageView(Context context, AttributeSet attrs) { 28 | super(context, attrs); 29 | sharedConstructor(context, attrs); 30 | } 31 | 32 | public SvgImageView(Context context, AttributeSet attrs, int defStyle) { 33 | super(context, attrs, defStyle); 34 | sharedConstructor(context, attrs); 35 | } 36 | 37 | private void sharedConstructor(Context context, AttributeSet attrs) { 38 | TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomShapeImageView); 39 | mSvgRawResourceId = a.getResourceId(R.styleable.CustomShapeImageView_svg_raw_resource, 0); 40 | a.recycle(); 41 | } 42 | 43 | public static Bitmap getBitmap(Context context, int width, int height, int svgRawResourceId) { 44 | Bitmap bitmap = Bitmap.createBitmap(width, height, 45 | Bitmap.Config.ARGB_8888); 46 | Canvas canvas = new Canvas(bitmap); 47 | Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 48 | paint.setColor(Color.BLACK); 49 | 50 | if (svgRawResourceId > 0) { 51 | SVG svg = SVGParser.getSVGFromInputStream( 52 | context.getResources().openRawResource(svgRawResourceId), width, height); 53 | canvas.drawPicture(svg.getPicture()); 54 | } else { 55 | canvas.drawRect(new RectF(0.0f, 0.0f, width, height), paint); 56 | } 57 | 58 | return bitmap; 59 | } 60 | 61 | @Override 62 | public Bitmap getBitmap() { 63 | return getBitmap(mContext, getWidth(), getHeight(), mSvgRawResourceId); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/src/com/sensoro/experience/tool/FrameAnimationController.java: -------------------------------------------------------------------------------- 1 | 2 | package com.sensoro.experience.tool; 3 | 4 | import android.os.Handler; 5 | import android.os.Message; 6 | 7 | public class FrameAnimationController { 8 | private static final int MSG_ANIMATE = 1000; 9 | 10 | public static final int ANIMATION_FRAME_DURATION = 1000 / 60; 11 | 12 | private static final Handler mHandler = new AnimationHandler(); 13 | 14 | private FrameAnimationController() { 15 | throw new UnsupportedOperationException(); 16 | } 17 | 18 | public static void requestAnimationFrame(Runnable runnable) { 19 | Message message = new Message(); 20 | message.what = MSG_ANIMATE; 21 | message.obj = runnable; 22 | mHandler.sendMessageDelayed(message, ANIMATION_FRAME_DURATION); 23 | } 24 | 25 | public static void requestFrameDelay(Runnable runnable, long delay) { 26 | Message message = new Message(); 27 | message.what = MSG_ANIMATE; 28 | message.obj = runnable; 29 | mHandler.sendMessageDelayed(message, delay); 30 | } 31 | 32 | private static class AnimationHandler extends Handler { 33 | public void handleMessage(Message m) { 34 | switch (m.what) { 35 | case MSG_ANIMATE: 36 | if (m.obj != null) { 37 | ((Runnable) m.obj).run(); 38 | } 39 | break; 40 | } 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/src/com/sensoro/experience/tool/MyApp.java: -------------------------------------------------------------------------------- 1 | package com.sensoro.experience.tool; 2 | 3 | import com.sensoro.cloud.SensoroManager; 4 | 5 | import android.app.Application; 6 | import android.os.Build; 7 | import android.util.Log; 8 | 9 | public class MyApp extends Application { 10 | 11 | private static final String TAG = MyApp.class.getSimpleName(); 12 | SensoroManager sensoroManager; 13 | 14 | @Override 15 | public void onCreate() { 16 | initSensoro(); 17 | super.onCreate(); 18 | } 19 | 20 | private void initSensoro() { 21 | sensoroManager = SensoroManager.getInstance(getApplicationContext()); 22 | sensoroManager.setCloudServiceEnable(false); 23 | sensoroManager.addBroadcastKey("01Y2GLh1yw3+6Aq0RsnOQ8xNvXTnDUTTLE937Yedd/DnlcV0ixCWo7JQ+VEWRSya80yea6u5aWgnW1ACjKNzFnig=="); 24 | try { 25 | sensoroManager.startService(); 26 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { 27 | sensoroManager.setForegroundScanPeriod(7000); 28 | } 29 | } catch (Exception e) { 30 | Log.e(TAG, e.toString()); 31 | } 32 | } 33 | 34 | @Override 35 | public void onTerminate() { 36 | if (sensoroManager != null) { 37 | sensoroManager.stopService(); 38 | } 39 | super.onTerminate(); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/src/com/sensoro/experience/tool/NotificationFragment.java: -------------------------------------------------------------------------------- 1 | package com.sensoro.experience.tool; 2 | 3 | import com.sensoro.beacon.kit.Beacon; 4 | 5 | import android.app.Activity; 6 | import android.content.SharedPreferences; 7 | import android.content.SharedPreferences.Editor; 8 | import android.os.Bundle; 9 | import android.support.v4.app.Fragment; 10 | import android.view.LayoutInflater; 11 | import android.view.MenuItem; 12 | import android.view.View; 13 | import android.view.ViewGroup; 14 | import android.widget.CompoundButton; 15 | import android.widget.CompoundButton.OnCheckedChangeListener; 16 | 17 | /* 18 | * Control the notification of beacon. 19 | */ 20 | public class NotificationFragment extends Fragment implements OnCheckedChangeListener { 21 | 22 | SwitchButton switchButton; 23 | Beacon beacon; 24 | 25 | MainActivity activity; 26 | 27 | @Override 28 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 29 | activity = (MainActivity) getActivity(); 30 | return inflater.inflate(R.layout.fragment_notification, container, false); 31 | } 32 | 33 | @Override 34 | public void onActivityCreated(Bundle savedInstanceState) { 35 | initCtrl(); 36 | setTitle(); 37 | super.onActivityCreated(savedInstanceState); 38 | } 39 | 40 | private void initCtrl() { 41 | beacon = (Beacon) getArguments().get(MainActivity.BEACON); 42 | activity = (MainActivity) getActivity(); 43 | setHasOptionsMenu(true); 44 | 45 | switchButton = (SwitchButton) activity.findViewById(R.id.fragment_notification_sb); 46 | } 47 | 48 | private void setTitle() { 49 | activity.setTitle(R.string.back); 50 | } 51 | 52 | @Override 53 | public void onResume() { 54 | initState(beacon); 55 | super.onResume(); 56 | } 57 | 58 | private void initState(Beacon beacon) { 59 | if (beacon == null) { 60 | switchButton.setChecked(false); 61 | } 62 | String key = activity.getKey(beacon); 63 | boolean state = activity.sharedPreferences.getBoolean(key, false); 64 | switchButton.setChecked(state); 65 | switchButton.setOnCheckedChangeListener(this); 66 | } 67 | 68 | @Override 69 | public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 70 | if (beacon == null) { 71 | return; 72 | } 73 | String key = activity.getKey(beacon); 74 | if (isChecked) { 75 | boolean isExist = activity.sharedPreferences.contains(key); 76 | if (isExist) { 77 | return; 78 | } 79 | Editor editor = activity.sharedPreferences.edit(); 80 | editor.putBoolean(key, true); 81 | editor.commit(); 82 | } else { 83 | Editor editor = activity.sharedPreferences.edit(); 84 | editor.remove(key); 85 | editor.commit(); 86 | } 87 | } 88 | 89 | @Override 90 | public boolean onOptionsItemSelected(MenuItem item) { 91 | int id = item.getItemId(); 92 | switch (id) { 93 | case android.R.id.home: 94 | activity.onBackPressed(); 95 | break; 96 | 97 | default: 98 | break; 99 | } 100 | return super.onOptionsItemSelected(item); 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/src/com/sensoro/experience/tool/SwitchButton.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/Samples/Yunzi-Android/src/com/sensoro/experience/tool/SwitchButton.java -------------------------------------------------------------------------------- /Samples/Yunzi-Android/src/com/sensoro/experience/tool/TTFIcon.java: -------------------------------------------------------------------------------- 1 | package com.sensoro.experience.tool; 2 | 3 | import android.content.Context; 4 | import android.graphics.Typeface; 5 | import android.util.AttributeSet; 6 | import android.widget.TextView; 7 | 8 | public class TTFIcon extends TextView { 9 | 10 | Typeface font; 11 | 12 | public TTFIcon(Context context, AttributeSet attrs) { 13 | super(context, attrs); 14 | font = Typeface.createFromAsset(context.getAssets(), "fontawesome-webfont.ttf"); 15 | this.setTypeface(font); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Samples/Yunzi-Android/src/com/svgandroid/SVGParseException.java: -------------------------------------------------------------------------------- 1 | package com.svgandroid; 2 | 3 | /** 4 | * Runtime exception thrown when there is a problem parsing an SVG. 5 | * 6 | * @author Larva Labs, LLC 7 | */ 8 | public class SVGParseException extends RuntimeException { 9 | 10 | public SVGParseException(String s) { 11 | super(s); 12 | } 13 | 14 | public SVGParseException(String s, Throwable throwable) { 15 | super(s, throwable); 16 | } 17 | 18 | public SVGParseException(Throwable throwable) { 19 | super(throwable); 20 | } 21 | } -------------------------------------------------------------------------------- /Samples/Yunzi-Android/简体中文版/README.md: -------------------------------------------------------------------------------- 1 | #云子示例应用介绍 2 | 3 | 4 | “云子”示例应用,是一款帮助开发者体验云子传感器功能的手机客户端。目前支持iPhone版,你可以在我们的Github上找到对应的项目源码。 5 | 6 | “云子”,基于SBK(Sensoro Beacon Kit)开发,需要在Xcode6、iOS8版本SDK下编译运行,支持iOS7.0及以上版本。 7 | 8 | 9 | ###主要功能: 10 | 11 | ####云子列表与搜索 12 | 显示周围云子的SN与ID,SN与ID和云子传感器对应的贴纸一致,可以通过搜索的方式找到指定的云子。 13 | 14 | ![](https://raw.githubusercontent.com/Sensoro/Sensoro.github.io/master/download/app/yunzi/android/res/png/1.PNG) 15 | 16 | ####系统权限验证 17 | 因为云子是一款基于iBeacon的智能传感器,所以需要使用iBeacon对应所需的系统权限,包括定位服务,和系统蓝牙。 18 | 19 | ![](https://raw.githubusercontent.com/Sensoro/Sensoro.github.io/master/download/app/yunzi/android/res/png/0.PNG) 20 | 21 | ####云子功能与特点 22 | “云子”的功能主要涵盖: 23 | (1)iBeacon的RSSI值(信号强度),accuracy(距离),proximity(范围)。 24 | (2)传感器:温度,光线,加速度传感器。 25 | (3)利用云子可实现的功能及场景:距离、范围、光线、温度、移动、推送等。 26 | 27 | ![](https://raw.githubusercontent.com/Sensoro/Sensoro.github.io/master/download/app/yunzi/android/res/png/2.PNG) 28 | 29 | ####距离 30 | 当距云子的距离发生变化,页面会显示使用者距离云子的距离。 31 | 32 | ![](https://raw.githubusercontent.com/Sensoro/Sensoro.github.io/master/download/app/yunzi/android/res/png/3.PNG) 33 | ![](https://raw.githubusercontent.com/Sensoro/Sensoro.github.io/master/download/app/yunzi/android/res/png/4.PNG) 34 | 35 | #####范围 36 | 当距云子的距离发生变化,使用者所处的位置可能会发生变化。每个云子定义了四种范围状态“很近”、“较近”、“较远”、“未知”。 37 | 38 | ![](https://raw.githubusercontent.com/Sensoro/Sensoro.github.io/master/download/app/yunzi/android/res/png/5.PNG) 39 | ![](https://raw.githubusercontent.com/Sensoro/Sensoro.github.io/master/download/app/yunzi/android/res/png/6.PNG) 40 | ![](https://raw.githubusercontent.com/Sensoro/Sensoro.github.io/master/download/app/yunzi/android/res/png/7.PNG) 41 | #####光线 42 | 将云子的光线传感器开启,中心颜色会随着光线变化而变化。 43 | 44 | ![](https://raw.githubusercontent.com/Sensoro/Sensoro.github.io/master/download/app/yunzi/android/res/png/8.PNG) 45 | ![](https://raw.githubusercontent.com/Sensoro/Sensoro.github.io/master/download/app/yunzi/android/res/png/9.PNG) 46 | ![](https://raw.githubusercontent.com/Sensoro/Sensoro.github.io/master/download/app/yunzi/android/res/png/10.PNG) 47 | #####温度 48 | 将云子的温度传感器开启,云子芯片温度变化,页面背景会随着温度变化而变化。 49 | 50 | ![](https://raw.githubusercontent.com/Sensoro/Sensoro.github.io/master/download/app/yunzi/android/res/png/11.PNG) 51 | ![](https://raw.githubusercontent.com/Sensoro/Sensoro.github.io/master/download/app/yunzi/android/res/png/12.PNG) 52 | #####移动 53 | 将云子的加速度传感器开启,当云子移动时,地球会转动;当云子停止移动时,计数器会加1。 54 | 55 | ![](https://raw.githubusercontent.com/Sensoro/Sensoro.github.io/master/download/app/yunzi/android/res/png/13.PNG) 56 | #####推送 57 | 当进入或者离开云子传感器时,依据传感器可将“云子”应用唤醒。“云子”应用会根据传感器的配置,判断是否需要生成一个推送提示。 58 | 59 | ![](https://raw.githubusercontent.com/Sensoro/Sensoro.github.io/master/download/app/yunzi/android/res/png/14.PNG) 60 | ![](https://raw.githubusercontent.com/Sensoro/Sensoro.github.io/master/download/app/yunzi/android/res/png/15.PNG) 61 | ![](https://raw.githubusercontent.com/Sensoro/Sensoro.github.io/master/download/app/yunzi/android/res/png/16.PNG) 62 | 63 | License 64 | ======= 65 | 66 | Copyright 2014 Sensoro, Inc. 67 | 68 | Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0 69 | -------------------------------------------------------------------------------- /Samples/简体中文版/README.md: -------------------------------------------------------------------------------- 1 | # Sensoro SDK Samples 2 | 3 | > 作者:Sensoro 4 | > 5 | > 版本:v1.0 6 | > 7 | > 时间:2015年04月10日14:58:18 8 | 9 | 该文档主要介绍了 Sensoro SDK 的一些使用方法和技巧,并附有源码示例。 10 | 11 | - Yunzi-Android 12 | 13 | Sensoro SDK 的基本使用方法,包括 iBeacon 搜索和 iBeacon 的数据获取。 14 | - BootCompleted 15 | 16 | Sensoro SDK 随设备开机启动的方法。 17 | 18 | -------------------------------------------------------------------------------- /SensoroSDK/android-async-http-1.4.6.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/SensoroSDK/android-async-http-1.4.6.jar -------------------------------------------------------------------------------- /SensoroSDK/doc/com/sensoro/beacon/kit/connection/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.sensoro.beacon.kit.connection 8 | 9 | 10 | 11 | 12 |

com.sensoro.beacon.kit.connection

13 |
14 |

15 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /SensoroSDK/doc/com/sensoro/beacon/kit/constants/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.sensoro.beacon.kit.constants 8 | 9 | 10 | 11 | 12 |

com.sensoro.beacon.kit.constants

13 |
14 |

15 | 18 |

枚举

19 | 27 |
28 | 29 | 30 | -------------------------------------------------------------------------------- /SensoroSDK/doc/com/sensoro/beacon/kit/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.sensoro.beacon.kit 8 | 9 | 10 | 11 | 12 |

com.sensoro.beacon.kit

13 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /SensoroSDK/doc/com/sensoro/cloud/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.sensoro.cloud 8 | 9 | 10 | 11 | 12 |

com.sensoro.cloud

13 |
14 |

15 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /SensoroSDK/doc/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 生成的文档 (无标题) 8 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | <noscript> 69 | <div>您的浏览器已禁用 JavaScript。</div> 70 | </noscript> 71 | <h2>框架预警</h2> 72 | <p>请使用框架功能查看此文档。如果看到此消息, 则表明您使用的是不支持框架的 Web 客户机。链接到<a href="overview-summary.html">非框架版本</a>。</p> 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /SensoroSDK/doc/overview-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 概览列表 8 | 9 | 10 | 11 | 12 | 13 | 22 |

 

23 | 24 | 25 | -------------------------------------------------------------------------------- /SensoroSDK/doc/package-list: -------------------------------------------------------------------------------- 1 | com.sensoro.beacon.kit 2 | com.sensoro.beacon.kit.connection 3 | com.sensoro.beacon.kit.constants 4 | com.sensoro.cloud 5 | -------------------------------------------------------------------------------- /SensoroSDK/doc/resources/background.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/SensoroSDK/doc/resources/background.gif -------------------------------------------------------------------------------- /SensoroSDK/doc/resources/tab.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/SensoroSDK/doc/resources/tab.gif -------------------------------------------------------------------------------- /SensoroSDK/doc/resources/titlebar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/SensoroSDK/doc/resources/titlebar.gif -------------------------------------------------------------------------------- /SensoroSDK/doc/resources/titlebar_end.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/SensoroSDK/doc/resources/titlebar_end.gif -------------------------------------------------------------------------------- /SensoroSDK/sensoro-beacon-kit-4.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/SensoroSDK/sensoro-beacon-kit-4.3.jar -------------------------------------------------------------------------------- /SensoroSDK/sensoro-scanner-1.0.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/SensoroSDK/sensoro-scanner-1.0.1.jar -------------------------------------------------------------------------------- /SensoroSDK/sensoro-sensor-kit.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/SensoroSDK/sensoro-sensor-kit.jar -------------------------------------------------------------------------------- /SensoroSDK/sensorocloud-4.1.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sensoro/SDK-Android/a10c361b981d7b999ead794828edf1a51a311b57/SensoroSDK/sensorocloud-4.1.2.jar --------------------------------------------------------------------------------