Giter VIP home page Giter VIP logo

aprilbeacon-android-sdk's Introduction

AprilBrother-Android-SDK

AprilBrother SDK for Android

You can scan beacon and modify beacon

##Add aprilscansdk for only scan

  • the demo aprilscan is a android studio moudle

Docs

Installation

  • Copy ab-sdk-beta.jar to your libs directory.
  • Add following permissions and service declaration to your AndroidManifest.xml:
 <uses-permission android:name="android.permission.BLUETOOTH"/>
 <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
 <!-- 声明应用需要使用设备的蓝牙BLE -->
 <uses-feature
        android:name="android.hardware.bluetooth_le"
        android:required="true" />
 <!-- use permission on Android M -->
 <uses-permission-sdk-23 android:name="android.permission.ACCESS_COARSE_LOCATION"/>

 <service android:name="com.aprilbrother.aprilbrothersdk.service.BeaconService"
         android:exported="false"/>
 <!--support modify abeacon with sdk1.6.0 -->
 <service android:name="com.aprilbrother.aprilbrothersdk.services.ABeaconUartService"
          android:exported="false" />
 <service android:name="com.aprilbrother.aprilbrothersdk.services.UartService"
          android:exported="false" />

Note

  • For Android 7.0, you should set beaconManager.setRangingExpirationMill(30L); before start scan
  • If you want to use change the characteristic you should make sure that our beacon's hardware is above 2.0
  • the default password is 195660
  • Android M to access the hardware identifiers of nearby external devices via Bluetooth and Wi-Fi scans, your app must now have the ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION permissions

Proguard

  • -libraryjars libs/ab-sdk-beta1.6.3.jar
  • -keep class com.aprilbrother.aprilbrothersdk.**
  • -keep class com.aprilbrother.aprilbrothersdk.Utils{*;}
  • if have this question (Can't process class [com/aprilbrother/aprilbrothersdk/services/ABeaconUartService$1.class] (Unknown verification type [18] in stack map frame)) repalce the proguard.jar
  • ADT: replace sdk/tools/proguard/lib/proguard.jar
  • AS: replace android-studio/gradle/m2repository/net/sf/proguard/proguard-base/5.x/proguard-base-5.x.jar

aprilbeacon-android-sdk's People

Contributors

circlec avatar syxdzc avatar volca avatar

Stargazers

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

Watchers

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

aprilbeacon-android-sdk's Issues

Parcel error caused by wrong Beancon read & write mothods

FATAL EXCEPTION: main
Process: com.aprilbrother.aprilbeacondemo, PID: 20345
java.lang.RuntimeException: Error receiving broadcast Intent { act=com.llzg.beacon.RECEIVER flg=0x10 (has extras) } in com.llzg.activity.MapActivity$BeaconReceiver@425d6290
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:778)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5110)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:702)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@4255f370: Unmarshalling unknown type code 39 at offset 296
at android.os.Parcel.readValue(Parcel.java:2080)
at android.os.Parcel.readListInternal(Parcel.java:2343)
at android.os.Parcel.readArrayList(Parcel.java:1703)
at android.os.Parcel.readValue(Parcel.java:2034)
at android.os.Parcel.readArrayMapInternal(Parcel.java:2314)
at android.os.Bundle.unparcel(Bundle.java:249)
at android.os.Bundle.getParcelableArrayList(Bundle.java:1250)
at android.content.Intent.getParcelableArrayListExtra(Intent.java:4846)

The decompile code shows:


    private Beacon(Parcel var1) {
        this.c = null;
        this.e = var1.readString();
        this.f = var1.readString();
        this.g = var1.readString();
        this.h = var1.readInt();
        this.i = var1.readInt();
        this.j = var1.readInt();
        this.k = var1.readInt();
        **this.d = var1.readInt();**
    }

 public void writeToParcel(Parcel var1, int var2) {
        var1.writeString(this.e);
        var1.writeString(this.f);
        var1.writeString(this.g);
        var1.writeInt(this.h);
        var1.writeInt(this.i);
        var1.writeInt(this.j);
        var1.writeInt(this.k);
    }

Build Crashes with 1.6.2 jar

When building a project using your library with the minSdkVersion set to < 21 i get an error on the shrinkDebugMultiDexComponent task with the following error message

java.io.IOException: Can't read [/Users/jonatandahora/dev/kiik/android/app_android/KiiK/build/intermediates/multi-dex/dev/debug/allclasses.jar] (Can't process class [com/aprilbrother/aprilbrothersdk/services/ABeaconUartService$1.class] (Unknown verification type [18] in stack map frame))

Could not find class 'android.bluetooth.BluetoothManager', referenced from method com.aprilbrother.aprilbrothersdk.BeaconManager.isBluetoothEnabled

Hi,
I am using this sdk even on devices less than android 4.3, and the issue i face is when i try to instantiate the beaconmanager and check if bluetooth is enabled or not and if this device is bluetooth low energy or not, i get a crash. Is there a way to solve this? I also have a receiver registered in the manifest that would check if bluetooth is enabled or disabled.

Please assist if possible. I have a build tomorrow :( and i need to rectify this issue.

Thanks
Dhara

build demo project with error: Unknown verification type [16] in stack map frame

Error:Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.

java.io.IOException: Can't read [/home/xxx/projects/AprilBeaconDemos/app/build/intermediates/transforms/jarMerging/debug/jars/1/1f/combined.jar] (Can't process class [com/aprilbrother/aprilbrothersdk/services/ABeaconUartService$1.class] (Unknown verification type [16] in stack map frame))

Execution failed for task ':app:checkDebugDuplicateClasses'.

Hello
i am trying to include library in my running application but facing some issues. I tried sample project and it is working fine but in my project i get gradle build issue please if anyone can help
this is my error
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:checkDebugDuplicateClasses'. at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:38) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:67) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49) at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315) at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305) at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101) at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49) at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)

Caused by: org.gradle.api.artifacts.transform.ArtifactTransformException: Failed to transform file 'ab-sdk-beta1.7.3.jar' to match attributes {artifactType=android-classes, org.gradle.usage=java-runtime-jars} at org.gradle.api.internal.artifacts.transform.TransformingArtifactVisitor.visitFile(TransformingArtifactVisitor.java:88) at org.gradle.api.internal.artifacts.ivyservice.resolveengine.artifact.LocalFileDependencyBackedArtifactSet$SingletonFileResolvedVariant.visit(LocalFileDependencyBackedArtifactSet.java:171) at org.gradle.api.internal.artifacts.transform.TransformCompletion.visit(TransformCompletion.java:42) at org.gradle.api.internal.artifacts.ivyservice.resolveengine.artifact.CompositeResolvedArtifactSet$CompositeResult.visit(CompositeResolvedArtifactSet.java:83) at org.gradle.api.internal.artifacts.ivyservice.resolveengine.artifact.ParallelResolveArtifactSet$VisitingSet.visit(ParallelResolveArtifactSet.java:64) at org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration.visitArtifacts(DefaultLenientConfiguration.java:256) at org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration.access$500(DefaultLenientConfiguration.java:69) at org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$2.run(DefaultLenientConfiguration.java:231) at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301) at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293) at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175) at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91) at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31) at org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration.visitArtifactsWithBuildOperation(DefaultLenientConfiguration.java:228) at org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration.access$200(DefaultLenientConfiguration.java:69) at org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$1.visitArtifacts(DefaultLenientConfiguration.java:133) at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:1147)

Some code has been obfuscated

Like this, should be keeped:
UNKNOWN
public static final Utils.Proximity UNKNOWN
IMMEDIATE
public static final Utils.Proximity IMMEDIATE
NEAR
public static final Utils.Proximity NEAR
FAR
public static final Utils.Proximity FAR

Can not debug an exception

03-24 18:48:07.292: E/AndroidRuntime(26350): FATAL EXCEPTION: Thread-1392
03-24 18:48:07.292: E/AndroidRuntime(26350): Process: com.merve.beacon, PID: 26350
03-24 18:48:07.292: E/AndroidRuntime(26350): java.lang.NullPointerException
03-24 18:48:07.292: E/AndroidRuntime(26350): at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1018)
03-24 18:48:07.292: E/AndroidRuntime(26350): at com.aprilbrother.aprilbrothersdk.service.BeaconService$c$1.run(BeaconService.java:435)
03-24 18:48:07.292: E/AndroidRuntime(26350): at java.lang.Thread.run(Thread.java:841)

What might the cause be?

Thanks

Can't change the minor/majoy id, because the oldpassword is empty

In the SDK Demo, the oldpassword is empty, need get it from the textView.

    /**
     * 输入密码的对话框
     */
    private void showEnterDialog() {
        final EditText textView = (EditText) LayoutInflater.from(this).inflate(
                R.layout.dialog_text, null);
        new Builder(ModifyActivity.this).setTitle("输入密码")
                .setView(textView)
                .setNegativeButton("取消", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();

                    }
                })
                .setPositiveButton("确定", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        oldPassword = textView.getText().toString();
                        aprilWrite();
                        dialog.dismiss();

                    }
                }).create().show();
    }

Beacon gets detected even when the battery is removed.

Hi,

I am using your library, and i seem to get an issue where in the beacon manager gets into entry region method and detects the beacon device even when it is not there.. the batteries have been removed. What could be the issue? Please assist.

This also happens with the AprilBeacon-Android-SDK demo.

Thanks

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.