Giter Club home page Giter Club logo

bridgefy_flutter's Introduction

Bridgefy Flutter SDK

GitHub last commit GitHub issues

The Bridgefy Software Development Kit (SDK) is a state-of-the-art, plug-and-play package that will let people use your mobile app when they don’t have access to the Internet, by using Bluetooth mesh networks.

Integrate the Bridgefy SDK into your Android and iOS app to reach the 3.5 billion people that don’t always have access to an Internet connection, and watch engagement and revenue grow!

Website. https://bridgefy.me/sdk
Email. [email protected]
witter. https://twitter.com/bridgefy
Facebook. https://www.facebook.com/bridgefy

Operation mode

All the connections are handled seamlessly by the SDK to create a mesh network. The size of this network depends on the number of devices connected and the environment as a variable factor, allowing you to join nodes in the same network or nodes in different networks.

networking

Platform permissions

To utilize this SDK in a Flutter application, you'll need to configure permissions for each individual platform (iOS and Android) first. You can read more about each platform's requirements below:

Installation

To install this SDK, you'll need to either add the following to your pubspec.yaml file:

dependencies:
  bridgefy: ^1.1.7

Or run this flutter command:

flutter pub add bridgefy

Usage

Initialization

The init method initializes the Bridgefy SDK with the given API key and verbose logging. The delegate parameter is required and should be an object that conforms to the BridgefyDelegatemixin.

The following code shows how to init the SDK (using your API key) and how to assign the delegate.

import 'package:bridgefy/bridgefy.dart';

class _MyAppState extends State<MyApp> implements BridgefyDelegate {
  final _bridgefy = Bridgefy();

  @override
  void initState() {
    super.initState();
    try {
      await _bridgefy.initialize(
        apiKey: "<API_KEY>",
        delegate: this,
        verboseLogging: true,
      );
    } catch (e) {
      _log("Unable to initialize: $e");
    }
  }

Start Bridgefy

The following code shows how to start the SDK with propagation profile and custom user Id.

    _bridgefy.start(
      userId: "Custom UUID",
      propagationProfile: BridgefyPropagationProfile.standard
    );

Stop Bridgefy

Stop Bridgefy operations

	_bridgefy.stop();

Sending data

The following method is used to send data using a transmission mode. This method returns a UUID to identify the message sent.

void _send() async {
  final lastMessageId = await _bridgefy.send(
    data: _data, // Uint8List data to send
    transmissionMode: BridgefyTransmissionMode(
      type: BridgefyTransmissionModeType.broadcast,
      uuid: await _bridgefy.currentUserID,
    ),
  );
}

Responding to SDK events

The SDK will report events to your app through the BridgefyDelegate object you specified upon initialization.

The following is an example event emitted when a message is successfully sent:

@override
void bridgefyDidSendMessage({required String messageID}) {
  // `messageID` The id of the message sent successfully.
}

// This function is called when the message could not be sent.
@override
void bridgefyDidFailSendingMessage({required String messageID, BridgefyError? error}) {
    // `messageID`: The id of the message that was tried to be sent.
	// `error`: Error reason.
}

When the app received data through Bridgefy:

@override
void bridgefyDidReceiveData({
  required Uint8List data,
  required String messageId,
  required BridgefyTransmissionMode transmissionMode,
}) {
  // `data` contains the message bytes.
}

Transmission Mode

BridgefyTransmissionModeType specifies different transmission modes:

  • p2p: Deliver a message to a specific recipient only if there's an active connection with it.
  • mesh: Deliver a message to a specific recipient using nearby devices to propagate it.
  • broadcast: Propagate a message readable by every device that receives it.

PropagationProfile

BridgefyPropagationProfile defines different propagation profiles within the BridgefySDK.

  • standard: Represents a standard propagation profile.
  • highDensityNetwork: Indicates a propagation profile suitable for high-density networks.
  • sparseNetwork: Represents a propagation profile tailored for sparse networks.
  • longReach: Indicates a propagation profile optimized for long reach.
  • shortReach: Represents a propagation profile designed for short reach communication.

Nearby peer detection

The following method is invoked when a peer has established connection:

    @override
    void bridgefyDidConnect({required String userID}) {
      // `userID` the peer connected
    }

When a peer is disconnected(out of range), the following method will be invoked:

    @override
    void bridgefyDidDisconnect({required String userID}) {
      // `userID` the peer disconnected
    }

To see a full list of events, take a look at the BridgefyDelegate mixin.

Other Utilities

Retrieve current user ID:

String currentUserID = await _bridgefy.currentUserID;

Get a list of connected peers:

List<String> connectedPeers = await _bridgefy.connectedPeers;

Check if the SDK is initialized or started:

bool isInitialized = await _bridgefy.isInitialized;
bool isStarted = await _bridgefy.isStarted;

Retrieve license expiration date:

DateTime? expirationDate = await _bridgefy.licenseExpirationDate;

License Update

Update the license:

await _bridgefy.updateLicense();

Multi-Platform Support

Bridgefy's SDKs are designed to work seamlessly across different platforms, including iOS and Android. This means that users with different devices can communicate with each other as long as they have the Bridgefy-enabled applications installed.

Contact & Support

© 2023 Bridgefy Inc. All rights reserved

bridgefy_flutter's People

Contributors

julian-bridgefy avatar mike-bridgefy avatar rafaelcr avatar

Stargazers

Takayuki Miyano avatar  avatar Ryan avatar Erin Donovan avatar Erik M. Roqueñi avatar TwistterLi avatar Scansky  avatar Charlie Chan avatar Gilberto Julián de la Orta Hernández avatar  avatar

Watchers

Gilberto Julián de la Orta Hernández avatar  avatar

Forkers

vladzouth

bridgefy_flutter's Issues

Failed to build service credential

I have attempted to build run the example code and followed the instructions.
Managed to make it work on iOS, however on Android I get the error: Failed to build service credential.

I have replaced all instances of 'me.bridgefy.android.sample' with my own application id 'com.example.crew_pda'

image

Again, on iOS it works, but not on Android.

Is this package ready for Flutter 3?

Hi I'm trying to test this package but I have issues with Android.
First of all documentation lacks on infos about AndroidManifest like <meta-data android:name="com.bridgefy.sdk.API_KEY" android:value="API-KEY" /> . I'm also receiving errors when calling the initialize method on android phone
I/Process (23721): at kotlinx.coroutines.internal.CoroutineExceptionHandlerImpl_commonKt.handleUncaughtCoroutineException(CoroutineExceptionHandlerImpl.common.kt:52) I/Process (23721): at kotlinx.coroutines.CoroutineExceptionHandlerKt.handleCoroutineException(CoroutineExceptionHandler.kt:32) I/Process (23721): at kotlinx.coroutines.StandaloneCoroutine.handleJobException(Builders.common.kt:194) I/Process (23721): at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:231) I/Process (23721): at kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath(JobSupport.kt:910) I/Process (23721): at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:867) I/Process (23721): at kotlinx.coroutines.JobSupport.makeCompletingOnce$kotlinx_coroutines_core(JobSupport.kt:832) I/Process (23721): at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:100) I/Process (23721): at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46) I/Process (23721): at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) I/Process (23721): at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115) I/Process (23721): at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103) I/Process (23721): at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584) I/Process (23721): at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793) I/Process (23721): at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697) I/Process (23721): at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684) I/Process (23721): Sending signal. PID: 23721 SIG: 9

1.1.2 doesn't work

Hey guys, also the new update doesn't work.. To make it start I had to add this into app gradle dependecies
def lifecycle_version = "2.5.1" implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"

But event after this the app crashes with

E/AndroidRuntime(28607): FATAL EXCEPTION: main
E/AndroidRuntime(28607): Process: com.example.bridgefy_test, PID: 28607
E/AndroidRuntime(28607): java.lang.NoClassDefFoundError: Failed resolution of: Lokhttp3/logging/HttpLoggingInterceptor$Level;
E/AndroidRuntime(28607): at me.bridgefy.network.di.NetworkRepositoryModule.(Unknown Source:8)
E/AndroidRuntime(28607): at me.bridgefy.di.DaggerBridgefyComponent$Builder.build(SourceFile:18)
E/AndroidRuntime(28607): at me.bridgefy.di.Injector.init$bridgefy_release(SourceFile:5)
E/AndroidRuntime(28607): at me.bridgefy.Bridgefy.init(SourceFile:2)
E/AndroidRuntime(28607): at me.bridgefy.plugin.flutter.BridgefyPlugin.initialize(BridgefyPlugin.kt:60)
E/AndroidRuntime(28607): at me.bridgefy.plugin.flutter.BridgefyPlugin.onMethodCall(BridgefyPlugin.kt:37)
E/AndroidRuntime(28607): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:258)
E/AndroidRuntime(28607): at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
E/AndroidRuntime(28607): at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:322)
E/AndroidRuntime(28607): at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
E/AndroidRuntime(28607): at android.os.Handler.handleCallback(Handler.java:942)
E/AndroidRuntime(28607): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(28607): at android.os.Looper.loopOnce(Looper.java:211)
E/AndroidRuntime(28607): at android.os.Looper.loop(Looper.java:300)
E/AndroidRuntime(28607): at android.app.ActivityThread.main(ActivityThread.java:8294)
E/AndroidRuntime(28607): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(28607): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
E/AndroidRuntime(28607): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028)
E/AndroidRuntime(28607): Caused by: java.lang.ClassNotFoundException: Didn't find class "okhttp3.logging.HttpLoggingInterceptor$Level" on path: DexPathList[[zip file "/data/app/~~AeEnNIpGEIRU9UG6awe4jw==/com.example.bridgefy_test-vRkeL-aVOYg_K4oXTemgaA==/base.apk"],nativeLibraryDirectories=[/data/app/~~AeEnNIpGEIRU9UG6awe4jw==/com.example.bridgefy_test-vRkeL-aVOYg_K4oXTemgaA==/lib/arm64, /data/app/~~AeEnNIpGEIRU9UG6awe4jw==/com.example.bridgefy_test-vRkeL-aVOYg_K4oXTemgaA==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]]
E/AndroidRuntime(28607): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
E/AndroidRuntime(28607): at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
E/AndroidRuntime(28607): at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
E/AndroidRuntime(28607): ... 18 more
W/e.bridgefy_test(28607): type=1400 audit(0.0:213040): avc: denied { search } for name="miuilog" dev="dm-50" ino=31304 scontext=u:r:untrusted_app:s0:c67,c257,c512,c768 tcontext=u:object_r:data_log_file:s0 tclass=dir permissive=0 app=com.example.bridgefy_test
W/e.bridgefy_test(28607): type=1400 audit(0.0:213041): avc: denied { search } for name="miuilog" dev="dm-50" ino=31304 scontext=u:r:untrusted_app:s0:c67,c257,c512,c768 tcontext=u:object_r:data_log_file:s0 tclass=dir permissive=0 app=com.example.bridgefy_test
W/e.bridgefy_test(28607): type=1400 audit(0.0:213042): avc: denied { search } for name="miuilog" dev="dm-50" ino=31304 scontext=u:r:untrusted_app:s0:c67,c257,c512,c768 tcontext=u:object_r:data_log_file:s0 tclass=dir permissive=0 app=com.example.bridgefy_test
W/e.bridgefy_test(28607): type=1400 audit(0.0:213043): avc: denied { search } for name="miuilog" dev="dm-50" ino=31304 scontext=u:r:untrusted_app:s0:c67,c257,c512,c768 tcontext=u:object_r:data_log_file:s0 tclass=dir permissive=0 app=com.example.bridgefy_test
W/e.bridgefy_test(28607): type=1400 audit(0.0:213044): avc: denied { search } for name="miuilog" dev="dm-50" ino=31304 scontext=u:r:untrusted_app:s0:c67,c257,c512,c768 tcontext=u:object_r:data_log_file:s0 tclass=dir permissive=0 app=com.example.bridgefy_test
W/OOMEventManagerFK(28607): Failed to mkdir /data/miuilog/stability/memleak/heapdump/
I/Process (28607): Process is going to kill itself!
I/Process (28607): java.lang.Exception
I/Process (28607): at android.os.Process.killProcess(Process.java:1330)
I/Process (28607): at com.android.internal.os.RuntimeInit$KillApplicationHandler.uncaughtException(RuntimeInit.java:202)
I/Process (28607): at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)
I/Process (28607): at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
I/Process (28607): at io.flutter.embedding.engine.dart.DartMessenger.handleError(DartMessenger.java:419)
I/Process (28607): at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:300)
I/Process (28607): at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:322)
I/Process (28607): at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
I/Process (28607): at android.os.Handler.handleCallback(Handler.java:942)
I/Process (28607): at android.os.Handler.dispatchMessage(Handler.java:99)
I/Process (28607): at android.os.Looper.loopOnce(Looper.java:211)
I/Process (28607): at android.os.Looper.loop(Looper.java:300)
I/Process (28607): at android.app.ActivityThread.main(ActivityThread.java:8294)
I/Process (28607): at java.lang.reflect.Method.invoke(Native Method)
I/Process (28607): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
I/Process (28607): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028)
I/Process (28607): Sending signal. PID: 28607 SIG: 9
Lost connection to device.

Exited.

Another Android phone crashes with

D/libGLESv2(22525): STS_GLApi : DTS, ODTC are not allowed for Package : com.example.bridgefy_test

Error while validate license

Bridgefy.SDK : [BridgefySDK] Did fail to start service with error: An error occurred while validating the license

can't send message without any error

Hello, I integrated bridgefy’s flutterSDK

dependencies: bridgefy: ^1.1.5

I downloaded the demo project (https://github.com/bridgefy/bridgefy_flutter) and replaced the application id and api key of the project. The referenced program can init and start normally.

But when I try to send a message (at least one device around is open Android 10+), but
Message sender: Did not receive any callback regarding the success or failure of message sending.

Message receiver: No message received and no callback information
may I know what is the reason?

I didn't modify any demo code just application id and api key that mentioned above

Here is my log

Debug service listening on ws://127.0.0.1:62967/UJh0SNeTHUc=/ws
Syncing files to device PBEM00...
W/Gralloc3(15018): mapper 3.x is not supported
D/SurfaceView(15018): 202177657 updateSurfacePosition RenderWorker, frameNr = 1, postion = [0, 0, 1080, 2340]
D/ProfileInstaller(15018): Installing profile for com.example.bledemo
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->putInt(Ljava/lang/Object;JI)V (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->objectFieldOffset(Ljava/lang/reflect/Field;)J (greylist,core-platform-api, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->putLong(Ljava/lang/Object;JJ)V (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->allocateInstance(Ljava/lang/Class;)Ljava/lang/Object; (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Llibcore/io/Memory;->peekLong(JZ)J (greylist, reflection, allowed)
W/example.bledem(15018): Accessing hidden method Llibcore/io/Memory;->pokeLong(JJZ)V (greylist, reflection, allowed)
W/example.bledem(15018): Accessing hidden method Llibcore/io/Memory;->pokeInt(JIZ)V (greylist, reflection, allowed)
W/example.bledem(15018): Accessing hidden method Llibcore/io/Memory;->peekInt(JZ)I (greylist, reflection, allowed)
W/example.bledem(15018): Accessing hidden method Llibcore/io/Memory;->pokeByte(JB)V (greylist, reflection, allowed)
W/example.bledem(15018): Accessing hidden method Llibcore/io/Memory;->peekByte(J)B (greylist, reflection, allowed)
W/example.bledem(15018): Accessing hidden method Llibcore/io/Memory;->pokeByteArray(J[BII)V (greylist, reflection, allowed)
W/example.bledem(15018): Accessing hidden method Llibcore/io/Memory;->peekByteArray(J[BII)V (greylist, reflection, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->arrayBaseOffset(Ljava/lang/Class;)I (greylist,core-platform-api, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->arrayIndexScale(Ljava/lang/Class;)I (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, reflection, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->putInt(Ljava/lang/Object;JI)V (greylist, reflection, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, reflection, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->putLong(Ljava/lang/Object;JJ)V (greylist, reflection, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, reflection, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, reflection, allowed)
W/example.bledem(15018): Accessing hidden field Ljava/nio/Buffer;->address:J (greylist, reflection, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)
I/chatty  (15018): uid=10337(com.example.bledemo) identical 8 lines
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)
I/chatty  (15018): uid=10337(com.example.bledemo) identical 3 lines
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->putInt(Ljava/lang/Object;JI)V (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed)
W/example.bledem(15018): Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed)
D/NetworkSecurityConfig(15018): No Network Security Config specified, using platform default
W/example.bledem(15018): Accessing hidden method Ljava/lang/invoke/MethodHandles$Lookup;-><init>(Ljava/lang/Class;I)V (greylist, reflection, allowed)
D/Bridgefy(15018): Bridgefy was initialized successful with a7d9b264-b950-475b-96c6-a7186c576e56
I/Bridgefy(15018): Bridgefy license valid to Mon May 27 09:44:32 GMT+08:00 2024
E/CheckPermission(15018): _bluetooth code = 1 
D/BluetoothAdapter(15018): 111160112: getState(). Returning ON
E/CheckPermission(15018): _bluetooth code = 10 
D/BluetoothGattServer(15018): registerCallback()
D/BluetoothGattServer(15018): registerCallback() - UUID=d8d80a54-ccfa-4e0b-9b3a-a8481323086d
D/BluetoothGattServer(15018): onServerRegistered() - status=0 serverIf=6
D/BluetoothGattServer(15018): addService() - service: 2bee975d-eca3-21f1-5359-aa63810e2025
I/Bridgefy(15018): Bridgefy started with a7d9b264-b950-475b-96c6-a7186c576e56 client 9aafbc40-cdef-495f-ac11-2caff74f4f79
D/BluetoothGattServer(15018): onServiceAdded() - handle=43 uuid=2bee975d-eca3-21f1-5359-aa63810e2025 status=0
D/BluetoothAdapter(15018): 111160112: getState(). Returning ON
D/BluetoothAdapter(15018): 111160112: getState(). Returning ON
D/BluetoothAdapter(15018): isLeEnabled(): ON
D/BluetoothAdapter(15018): isLeEnabled(): ON
E/CheckPermission(15018): _bluetooth code = 10 
D/BluetoothAdapter(15018): isLeEnabled(): ON
E/CheckPermission(15018): _bluetooth code = 10 
E/CheckPermission(15018): _bluetooth code = 10 
D/BluetoothLeScanner(15018): onScannerRegistered() - status=0 scannerId=8 mScannerId=0
E/CheckPermission(15018): _bluetooth code = 10 
D/BluetoothAdapter(15018): 111160112: getState(). Returning ON
D/BluetoothAdapter(15018): isLeEnabled(): ON
D/BluetoothAdapter(15018): isLeEnabled(): ON
E/CheckPermission(15018): _bluetooth code = 10 
E/CheckPermission(15018): _bluetooth code = 10 
E/CheckPermission(15018): _bluetooth code = 10 
D/BluetoothAdapter(15018): 111160112: getState(). Returning ON
D/BluetoothAdapter(15018): isLeEnabled(): ON
D/BluetoothAdapter(15018): isLeEnabled(): ON
E/CheckPermission(15018): _bluetooth code = 10 
E/CheckPermission(15018): _bluetooth code = 10 
E/CheckPermission(15018): _bluetooth code = 10 
D/BluetoothAdapter(15018): 111160112: getState(). Returning ON
D/BluetoothAdapter(15018): isLeEnabled(): ON
D/BluetoothAdapter(15018): isLeEnabled(): ON
E/CheckPermission(15018): _bluetooth code = 10 
E/CheckPermission(15018): _bluetooth code = 10 
I/Choreographer(15018): Skipped 1 frames!  The application may be doing too much work on its main thread.
E/CheckPermission(15018): _bluetooth code = 10 
D/BluetoothAdapter(15018): 111160112: getState(). Returning ON
D/BluetoothAdapter(15018): isLeEnabled(): ON
D/BluetoothAdapter(15018): isLeEnabled(): ON
E/CheckPermission(15018): _bluetooth code = 10 
E/CheckPermission(15018): _bluetooth code = 10 
I/Choreographer(15018): Skipped 1 frames!  The application may be doing too much work on its main thread.
E/CheckPermission(15018): _bluetooth code = 10 
D/BluetoothAdapter(15018): 111160112: getState(). Returning ON
D/BluetoothAdapter(15018): isLeEnabled(): ON
D/BluetoothAdapter(15018): isLeEnabled(): ON
E/CheckPermission(15018): _bluetooth code = 10 
E/CheckPermission(15018): _bluetooth code = 10 

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.