mirror of
				https://github.com/hackku21/nearby_connections.git
				synced 2025-06-13 12:53:50 +00:00 
			
		
		
		
	updated nearby to version 17.0.0, added location enabling and checking utility method, version 1.1.0 published
This commit is contained in:
		
							parent
							
								
									0f2a651519
								
							
						
					
					
						commit
						d89c8b3211
					
				@ -1,3 +1,10 @@
 | 
				
			|||||||
 | 
					## 1.1.0
 | 
				
			||||||
 | 
					* Updated Android Nearby version from 16.0.0 to 17.0.0
 | 
				
			||||||
 | 
					* Updated Example
 | 
				
			||||||
 | 
					* **Location/GPS service must be turned on** or devices may disconnect
 | 
				
			||||||
 | 
					more often, some devices may disconnect immediately. 2 convinience methods are added
 | 
				
			||||||
 | 
					`enableLocationServices` and `checkLocationEnabled`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 1.0.3
 | 
					## 1.0.3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Added serviceId parameter in startAdvertising and startDiscovery
 | 
					* Added serviceId parameter in startAdvertising and startDiscovery
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										19
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								README.md
									
									
									
									
									
								
							@ -20,6 +20,11 @@ Currently supports Bytes and Files.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## Setup
 | 
					## Setup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Note regarding Location(GPS)
 | 
				
			||||||
 | 
					While using this,
 | 
				
			||||||
 | 
					**Location/GPS service must be turned on** or devices may disconnect
 | 
				
			||||||
 | 
					more often, some devices may disconnect immediately.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Set Permissions
 | 
					### Set Permissions
 | 
				
			||||||
Add these to AndroidManifest.xml
 | 
					Add these to AndroidManifest.xml
 | 
				
			||||||
```xml
 | 
					```xml
 | 
				
			||||||
@ -38,7 +43,7 @@ Add these to AndroidManifest.xml
 | 
				
			|||||||
Since ACCESS_FINE_LOCATION and READ_EXTERNAL_STORAGE is considered to be dangerous system permissions, in addition to adding them to your manifest, you must request these permissions at runtime.
 | 
					Since ACCESS_FINE_LOCATION and READ_EXTERNAL_STORAGE is considered to be dangerous system permissions, in addition to adding them to your manifest, you must request these permissions at runtime.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### As a **convinience** this library provides methods to check and request location and external read/write permissions
 | 
					#### As a **convinience** this library provides methods to check and request location and external read/write permissions
 | 
				
			||||||
```java
 | 
					```dart
 | 
				
			||||||
// returns true/false asynchronously 
 | 
					// returns true/false asynchronously 
 | 
				
			||||||
bool a = await Nearby().checkLocationPermissions()
 | 
					bool a = await Nearby().checkLocationPermissions()
 | 
				
			||||||
// asks for permission only if its not given
 | 
					// asks for permission only if its not given
 | 
				
			||||||
@ -56,6 +61,18 @@ Nearby().askLocationAndExternalStoragePermission() // for all permissions in one
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
The work flow is similar to the [Android Nearby Connections library](https://developers.google.com/nearby/connections/overview)
 | 
					The work flow is similar to the [Android Nearby Connections library](https://developers.google.com/nearby/connections/overview)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## NOTE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Location/GPS service must be turned on** or devices may disconnect
 | 
				
			||||||
 | 
					more often, some devices may disconnect immediately.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For convinience this library provides methods to check and enable location
 | 
				
			||||||
 | 
					```dart
 | 
				
			||||||
 | 
					bool b = await Nearby().checkLocationEnabled();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// opens settings where user can enable it
 | 
				
			||||||
 | 
					Nearby().enableLocationServices();
 | 
				
			||||||
 | 
					``` 
 | 
				
			||||||
### Advertise for connection
 | 
					### Advertise for connection
 | 
				
			||||||
```dart
 | 
					```dart
 | 
				
			||||||
try {
 | 
					try {
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										6
									
								
								android/.classpath
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								android/.classpath
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<classpath>
 | 
				
			||||||
 | 
						<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11/"/>
 | 
				
			||||||
 | 
						<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
 | 
				
			||||||
 | 
						<classpathentry kind="output" path="bin/default"/>
 | 
				
			||||||
 | 
					</classpath>
 | 
				
			||||||
							
								
								
									
										23
									
								
								android/.project
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								android/.project
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<projectDescription>
 | 
				
			||||||
 | 
						<name>nearby_connections</name>
 | 
				
			||||||
 | 
						<comment>Project android created by Buildship.</comment>
 | 
				
			||||||
 | 
						<projects>
 | 
				
			||||||
 | 
						</projects>
 | 
				
			||||||
 | 
						<buildSpec>
 | 
				
			||||||
 | 
							<buildCommand>
 | 
				
			||||||
 | 
								<name>org.eclipse.jdt.core.javabuilder</name>
 | 
				
			||||||
 | 
								<arguments>
 | 
				
			||||||
 | 
								</arguments>
 | 
				
			||||||
 | 
							</buildCommand>
 | 
				
			||||||
 | 
							<buildCommand>
 | 
				
			||||||
 | 
								<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
 | 
				
			||||||
 | 
								<arguments>
 | 
				
			||||||
 | 
								</arguments>
 | 
				
			||||||
 | 
							</buildCommand>
 | 
				
			||||||
 | 
						</buildSpec>
 | 
				
			||||||
 | 
						<natures>
 | 
				
			||||||
 | 
							<nature>org.eclipse.jdt.core.javanature</nature>
 | 
				
			||||||
 | 
							<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
 | 
				
			||||||
 | 
						</natures>
 | 
				
			||||||
 | 
					</projectDescription>
 | 
				
			||||||
							
								
								
									
										13
									
								
								android/.settings/org.eclipse.buildship.core.prefs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								android/.settings/org.eclipse.buildship.core.prefs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					arguments=
 | 
				
			||||||
 | 
					auto.sync=false
 | 
				
			||||||
 | 
					build.scans.enabled=false
 | 
				
			||||||
 | 
					connection.gradle.distribution=GRADLE_DISTRIBUTION(VERSION(6.3))
 | 
				
			||||||
 | 
					connection.project.dir=../example/android
 | 
				
			||||||
 | 
					eclipse.preferences.version=1
 | 
				
			||||||
 | 
					gradle.user.home=
 | 
				
			||||||
 | 
					java.home=/usr/lib/jvm/java-11-openjdk-amd64
 | 
				
			||||||
 | 
					jvm.arguments=
 | 
				
			||||||
 | 
					offline.mode=false
 | 
				
			||||||
 | 
					override.workspace.settings=true
 | 
				
			||||||
 | 
					show.console.view=true
 | 
				
			||||||
 | 
					show.executions.view=true
 | 
				
			||||||
@ -32,6 +32,6 @@ android {
 | 
				
			|||||||
        disable 'InvalidPackage'
 | 
					        disable 'InvalidPackage'
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    dependencies{
 | 
					    dependencies{
 | 
				
			||||||
        api 'com.google.android.gms:play-services-nearby:16.0.0'
 | 
					        api 'com.google.android.gms:play-services-nearby:17.0.0'
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -2,7 +2,10 @@ package com.pkmnapps.nearby_connections;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import android.Manifest;
 | 
					import android.Manifest;
 | 
				
			||||||
import android.app.Activity;
 | 
					import android.app.Activity;
 | 
				
			||||||
 | 
					import android.content.Intent;
 | 
				
			||||||
 | 
					import android.location.LocationManager;
 | 
				
			||||||
import android.content.pm.PackageManager;
 | 
					import android.content.pm.PackageManager;
 | 
				
			||||||
 | 
					import android.provider.Settings;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import androidx.annotation.NonNull;
 | 
					import androidx.annotation.NonNull;
 | 
				
			||||||
import androidx.core.app.ActivityCompat;
 | 
					import androidx.core.app.ActivityCompat;
 | 
				
			||||||
@ -63,40 +66,59 @@ public class NearbyConnectionsPlugin implements MethodCallHandler {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        switch (call.method) {
 | 
					        switch (call.method) {
 | 
				
			||||||
            case "checkLocationPermission":
 | 
					            case "checkLocationPermission":
 | 
				
			||||||
                if (ContextCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION)
 | 
					                if (ContextCompat.checkSelfPermission(activity,
 | 
				
			||||||
                        == PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_COARSE_LOCATION)
 | 
					                        Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
 | 
				
			||||||
                        == PackageManager.PERMISSION_GRANTED) {
 | 
					                        && ContextCompat.checkSelfPermission(activity,
 | 
				
			||||||
 | 
					                                Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
 | 
				
			||||||
                    result.success(true);
 | 
					                    result.success(true);
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                    result.success(false);
 | 
					                    result.success(false);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            case "askLocationPermission":
 | 
					            case "askLocationPermission":
 | 
				
			||||||
                ActivityCompat.requestPermissions(activity,
 | 
					                ActivityCompat.requestPermissions(activity, new String[] { Manifest.permission.ACCESS_FINE_LOCATION,
 | 
				
			||||||
                        new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION},
 | 
					                        Manifest.permission.ACCESS_COARSE_LOCATION }, 0);
 | 
				
			||||||
                        0);
 | 
					 | 
				
			||||||
                Log.d("nearby_connections", "askLocationPermission");
 | 
					                Log.d("nearby_connections", "askLocationPermission");
 | 
				
			||||||
                result.success(null);
 | 
					                result.success(null);
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
 | 
					            case "checkLocationEnabled":
 | 
				
			||||||
 | 
					                LocationManager lm = (LocationManager) activity.getSystemService(activity.LOCATION_SERVICE);
 | 
				
			||||||
 | 
					                boolean gps_enabled = false;
 | 
				
			||||||
 | 
					                boolean network_enabled = false;
 | 
				
			||||||
 | 
					                try {
 | 
				
			||||||
 | 
					                    gps_enabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
 | 
				
			||||||
 | 
					                } catch (Exception ex) {
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                try {
 | 
				
			||||||
 | 
					                    network_enabled = lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
 | 
				
			||||||
 | 
					                } catch (Exception ex) {
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                result.success(gps_enabled || network_enabled);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case "enableLocationServices":
 | 
				
			||||||
 | 
					                activity.startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS));
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
            case "checkExternalStoragePermission":
 | 
					            case "checkExternalStoragePermission":
 | 
				
			||||||
                if (ContextCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE)
 | 
					                if (ContextCompat.checkSelfPermission(activity,
 | 
				
			||||||
                        == PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE)
 | 
					                        Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED
 | 
				
			||||||
                        == PackageManager.PERMISSION_GRANTED) {
 | 
					                        && ContextCompat.checkSelfPermission(activity,
 | 
				
			||||||
 | 
					                                Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
 | 
				
			||||||
                    result.success(true);
 | 
					                    result.success(true);
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                    result.success(false);
 | 
					                    result.success(false);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            case "askExternalStoragePermission":
 | 
					            case "askExternalStoragePermission":
 | 
				
			||||||
                ActivityCompat.requestPermissions(activity,
 | 
					                ActivityCompat.requestPermissions(activity, new String[] { Manifest.permission.READ_EXTERNAL_STORAGE,
 | 
				
			||||||
                        new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE},
 | 
					                        Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1);
 | 
				
			||||||
                        1);
 | 
					 | 
				
			||||||
                Log.d("nearby_connections", "askExternalStoragePermission");
 | 
					                Log.d("nearby_connections", "askExternalStoragePermission");
 | 
				
			||||||
                result.success(null);
 | 
					                result.success(null);
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            case "askLocationAndExternalStoragePermission":
 | 
					            case "askLocationAndExternalStoragePermission":
 | 
				
			||||||
                ActivityCompat.requestPermissions(activity,
 | 
					                ActivityCompat.requestPermissions(activity,
 | 
				
			||||||
                        new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE},
 | 
					                        new String[] { Manifest.permission.ACCESS_FINE_LOCATION,
 | 
				
			||||||
 | 
					                                Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.READ_EXTERNAL_STORAGE,
 | 
				
			||||||
 | 
					                                Manifest.permission.WRITE_EXTERNAL_STORAGE },
 | 
				
			||||||
                        1);
 | 
					                        1);
 | 
				
			||||||
                Log.d("nearby_connections", "askExternalStoragePermission");
 | 
					                Log.d("nearby_connections", "askExternalStoragePermission");
 | 
				
			||||||
                result.success(null);
 | 
					                result.success(null);
 | 
				
			||||||
@ -117,23 +139,21 @@ public class NearbyConnectionsPlugin implements MethodCallHandler {
 | 
				
			|||||||
                String serviceId = (String) call.argument("serviceId");
 | 
					                String serviceId = (String) call.argument("serviceId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                assert userNickName != null;
 | 
					                assert userNickName != null;
 | 
				
			||||||
                if(serviceId==null || serviceId =="")
 | 
					                if (serviceId == null || serviceId == "")
 | 
				
			||||||
                    serviceId=SERVICE_ID;
 | 
					                    serviceId = SERVICE_ID;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                AdvertisingOptions advertisingOptions = new AdvertisingOptions.Builder()
 | 
					                AdvertisingOptions advertisingOptions = new AdvertisingOptions.Builder()
 | 
				
			||||||
                        .setStrategy(getStrategy(strategy)).build();
 | 
					                        .setStrategy(getStrategy(strategy)).build();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                Nearby.getConnectionsClient(activity)
 | 
					                Nearby.getConnectionsClient(activity).startAdvertising(userNickName, serviceId,
 | 
				
			||||||
                        .startAdvertising(
 | 
					                        advertConnectionLifecycleCallback, advertisingOptions)
 | 
				
			||||||
                                userNickName, serviceId, advertConnectionLifecycleCallback, advertisingOptions)
 | 
					 | 
				
			||||||
                        .addOnSuccessListener(new OnSuccessListener<Void>() {
 | 
					                        .addOnSuccessListener(new OnSuccessListener<Void>() {
 | 
				
			||||||
                            @Override
 | 
					                            @Override
 | 
				
			||||||
                            public void onSuccess(Void aVoid) {
 | 
					                            public void onSuccess(Void aVoid) {
 | 
				
			||||||
                                Log.d("nearby_connections", "startAdvertising");
 | 
					                                Log.d("nearby_connections", "startAdvertising");
 | 
				
			||||||
                                result.success(true);
 | 
					                                result.success(true);
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                        })
 | 
					                        }).addOnFailureListener(new OnFailureListener() {
 | 
				
			||||||
                        .addOnFailureListener(new OnFailureListener() {
 | 
					 | 
				
			||||||
                            @Override
 | 
					                            @Override
 | 
				
			||||||
                            public void onFailure(@NonNull Exception e) {
 | 
					                            public void onFailure(@NonNull Exception e) {
 | 
				
			||||||
                                result.error("Failure", e.getMessage(), null);
 | 
					                                result.error("Failure", e.getMessage(), null);
 | 
				
			||||||
@ -147,11 +167,11 @@ public class NearbyConnectionsPlugin implements MethodCallHandler {
 | 
				
			|||||||
                String serviceId = (String) call.argument("serviceId");
 | 
					                String serviceId = (String) call.argument("serviceId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                assert userNickName != null;
 | 
					                assert userNickName != null;
 | 
				
			||||||
                if(serviceId==null || serviceId =="")
 | 
					                if (serviceId == null || serviceId == "")
 | 
				
			||||||
                    serviceId=SERVICE_ID;
 | 
					                    serviceId = SERVICE_ID;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                DiscoveryOptions discoveryOptions =
 | 
					                DiscoveryOptions discoveryOptions = new DiscoveryOptions.Builder().setStrategy(getStrategy(strategy))
 | 
				
			||||||
                        new DiscoveryOptions.Builder().setStrategy(getStrategy(strategy)).build();
 | 
					                        .build();
 | 
				
			||||||
                Nearby.getConnectionsClient(activity)
 | 
					                Nearby.getConnectionsClient(activity)
 | 
				
			||||||
                        .startDiscovery(serviceId, endpointDiscoveryCallback, discoveryOptions)
 | 
					                        .startDiscovery(serviceId, endpointDiscoveryCallback, discoveryOptions)
 | 
				
			||||||
                        .addOnSuccessListener(new OnSuccessListener<Void>() {
 | 
					                        .addOnSuccessListener(new OnSuccessListener<Void>() {
 | 
				
			||||||
@ -160,8 +180,7 @@ public class NearbyConnectionsPlugin implements MethodCallHandler {
 | 
				
			|||||||
                                Log.d("nearby_connections", "startDiscovery");
 | 
					                                Log.d("nearby_connections", "startDiscovery");
 | 
				
			||||||
                                result.success(true);
 | 
					                                result.success(true);
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                        })
 | 
					                        }).addOnFailureListener(new OnFailureListener() {
 | 
				
			||||||
                        .addOnFailureListener(new OnFailureListener() {
 | 
					 | 
				
			||||||
                            @Override
 | 
					                            @Override
 | 
				
			||||||
                            public void onFailure(@NonNull Exception e) {
 | 
					                            public void onFailure(@NonNull Exception e) {
 | 
				
			||||||
                                result.error("Failure", e.getMessage(), null);
 | 
					                                result.error("Failure", e.getMessage(), null);
 | 
				
			||||||
@ -196,8 +215,7 @@ public class NearbyConnectionsPlugin implements MethodCallHandler {
 | 
				
			|||||||
                            public void onSuccess(Void aVoid) {
 | 
					                            public void onSuccess(Void aVoid) {
 | 
				
			||||||
                                result.success(true);
 | 
					                                result.success(true);
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                        })
 | 
					                        }).addOnFailureListener(new OnFailureListener() {
 | 
				
			||||||
                        .addOnFailureListener(new OnFailureListener() {
 | 
					 | 
				
			||||||
                            @Override
 | 
					                            @Override
 | 
				
			||||||
                            public void onFailure(@NonNull Exception e) {
 | 
					                            public void onFailure(@NonNull Exception e) {
 | 
				
			||||||
                                result.error("Failure", e.getMessage(), null);
 | 
					                                result.error("Failure", e.getMessage(), null);
 | 
				
			||||||
@ -209,15 +227,13 @@ public class NearbyConnectionsPlugin implements MethodCallHandler {
 | 
				
			|||||||
                String endpointId = (String) call.argument("endpointId");
 | 
					                String endpointId = (String) call.argument("endpointId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                assert endpointId != null;
 | 
					                assert endpointId != null;
 | 
				
			||||||
                Nearby.getConnectionsClient(activity)
 | 
					                Nearby.getConnectionsClient(activity).acceptConnection(endpointId, payloadCallback)
 | 
				
			||||||
                        .acceptConnection(endpointId, payloadCallback)
 | 
					 | 
				
			||||||
                        .addOnSuccessListener(new OnSuccessListener<Void>() {
 | 
					                        .addOnSuccessListener(new OnSuccessListener<Void>() {
 | 
				
			||||||
                            @Override
 | 
					                            @Override
 | 
				
			||||||
                            public void onSuccess(Void aVoid) {
 | 
					                            public void onSuccess(Void aVoid) {
 | 
				
			||||||
                                result.success(true);
 | 
					                                result.success(true);
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                        })
 | 
					                        }).addOnFailureListener(new OnFailureListener() {
 | 
				
			||||||
                        .addOnFailureListener(new OnFailureListener() {
 | 
					 | 
				
			||||||
                            @Override
 | 
					                            @Override
 | 
				
			||||||
                            public void onFailure(@NonNull Exception e) {
 | 
					                            public void onFailure(@NonNull Exception e) {
 | 
				
			||||||
                                result.error("Failure", e.getMessage(), null);
 | 
					                                result.error("Failure", e.getMessage(), null);
 | 
				
			||||||
@ -229,15 +245,13 @@ public class NearbyConnectionsPlugin implements MethodCallHandler {
 | 
				
			|||||||
                String endpointId = (String) call.argument("endpointId");
 | 
					                String endpointId = (String) call.argument("endpointId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                assert endpointId != null;
 | 
					                assert endpointId != null;
 | 
				
			||||||
                Nearby.getConnectionsClient(activity)
 | 
					                Nearby.getConnectionsClient(activity).rejectConnection(endpointId)
 | 
				
			||||||
                        .rejectConnection(endpointId)
 | 
					 | 
				
			||||||
                        .addOnSuccessListener(new OnSuccessListener<Void>() {
 | 
					                        .addOnSuccessListener(new OnSuccessListener<Void>() {
 | 
				
			||||||
                            @Override
 | 
					                            @Override
 | 
				
			||||||
                            public void onSuccess(Void aVoid) {
 | 
					                            public void onSuccess(Void aVoid) {
 | 
				
			||||||
                                result.success(true);
 | 
					                                result.success(true);
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                        })
 | 
					                        }).addOnFailureListener(new OnFailureListener() {
 | 
				
			||||||
                        .addOnFailureListener(new OnFailureListener() {
 | 
					 | 
				
			||||||
                            @Override
 | 
					                            @Override
 | 
				
			||||||
                            public void onFailure(@NonNull Exception e) {
 | 
					                            public void onFailure(@NonNull Exception e) {
 | 
				
			||||||
                                result.error("Failure", e.getMessage(), null);
 | 
					                                result.error("Failure", e.getMessage(), null);
 | 
				
			||||||
@ -269,7 +283,7 @@ public class NearbyConnectionsPlugin implements MethodCallHandler {
 | 
				
			|||||||
                    Payload filePayload = Payload.fromFile(file);
 | 
					                    Payload filePayload = Payload.fromFile(file);
 | 
				
			||||||
                    Nearby.getConnectionsClient(activity).sendPayload(endpointId, filePayload);
 | 
					                    Nearby.getConnectionsClient(activity).sendPayload(endpointId, filePayload);
 | 
				
			||||||
                    Log.d("nearby_connections", "sentFilePayload");
 | 
					                    Log.d("nearby_connections", "sentFilePayload");
 | 
				
			||||||
                    result.success(filePayload.getId()); //return payload id to dart
 | 
					                    result.success(filePayload.getId()); // return payload id to dart
 | 
				
			||||||
                } catch (FileNotFoundException e) {
 | 
					                } catch (FileNotFoundException e) {
 | 
				
			||||||
                    Log.e("nearby_connections", "File not found", e);
 | 
					                    Log.e("nearby_connections", "File not found", e);
 | 
				
			||||||
                    result.error("Failure", e.getMessage(), null);
 | 
					                    result.error("Failure", e.getMessage(), null);
 | 
				
			||||||
@ -405,8 +419,9 @@ public class NearbyConnectionsPlugin implements MethodCallHandler {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        @Override
 | 
					        @Override
 | 
				
			||||||
        public void onPayloadTransferUpdate(@NonNull String endpointId, @NonNull PayloadTransferUpdate payloadTransferUpdate) {
 | 
					        public void onPayloadTransferUpdate(@NonNull String endpointId,
 | 
				
			||||||
            //required for files and streams
 | 
					                @NonNull PayloadTransferUpdate payloadTransferUpdate) {
 | 
				
			||||||
 | 
					            // required for files and streams
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            Log.d("nearby_connections", "onPayloadTransferUpdate");
 | 
					            Log.d("nearby_connections", "onPayloadTransferUpdate");
 | 
				
			||||||
            Map<String, Object> args = new HashMap<>();
 | 
					            Map<String, Object> args = new HashMap<>();
 | 
				
			||||||
@ -422,7 +437,8 @@ public class NearbyConnectionsPlugin implements MethodCallHandler {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    private final EndpointDiscoveryCallback endpointDiscoveryCallback = new EndpointDiscoveryCallback() {
 | 
					    private final EndpointDiscoveryCallback endpointDiscoveryCallback = new EndpointDiscoveryCallback() {
 | 
				
			||||||
        @Override
 | 
					        @Override
 | 
				
			||||||
        public void onEndpointFound(@NonNull String endpointId, @NonNull DiscoveredEndpointInfo discoveredEndpointInfo) {
 | 
					        public void onEndpointFound(@NonNull String endpointId,
 | 
				
			||||||
 | 
					                @NonNull DiscoveredEndpointInfo discoveredEndpointInfo) {
 | 
				
			||||||
            Log.d("nearby_connections", "onEndpointFound");
 | 
					            Log.d("nearby_connections", "onEndpointFound");
 | 
				
			||||||
            Map<String, Object> args = new HashMap<>();
 | 
					            Map<String, Object> args = new HashMap<>();
 | 
				
			||||||
            args.put("endpointId", endpointId);
 | 
					            args.put("endpointId", endpointId);
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										17
									
								
								example/android/.project
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								example/android/.project
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<projectDescription>
 | 
				
			||||||
 | 
						<name>android</name>
 | 
				
			||||||
 | 
						<comment>Project android_ created by Buildship.</comment>
 | 
				
			||||||
 | 
						<projects>
 | 
				
			||||||
 | 
						</projects>
 | 
				
			||||||
 | 
						<buildSpec>
 | 
				
			||||||
 | 
							<buildCommand>
 | 
				
			||||||
 | 
								<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
 | 
				
			||||||
 | 
								<arguments>
 | 
				
			||||||
 | 
								</arguments>
 | 
				
			||||||
 | 
							</buildCommand>
 | 
				
			||||||
 | 
						</buildSpec>
 | 
				
			||||||
 | 
						<natures>
 | 
				
			||||||
 | 
							<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
 | 
				
			||||||
 | 
						</natures>
 | 
				
			||||||
 | 
					</projectDescription>
 | 
				
			||||||
							
								
								
									
										13
									
								
								example/android/.settings/org.eclipse.buildship.core.prefs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								example/android/.settings/org.eclipse.buildship.core.prefs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					arguments=
 | 
				
			||||||
 | 
					auto.sync=false
 | 
				
			||||||
 | 
					build.scans.enabled=false
 | 
				
			||||||
 | 
					connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
 | 
				
			||||||
 | 
					connection.project.dir=
 | 
				
			||||||
 | 
					eclipse.preferences.version=1
 | 
				
			||||||
 | 
					gradle.user.home=
 | 
				
			||||||
 | 
					java.home=/usr/lib/jvm/java-11-openjdk-amd64
 | 
				
			||||||
 | 
					jvm.arguments=
 | 
				
			||||||
 | 
					offline.mode=false
 | 
				
			||||||
 | 
					override.workspace.settings=true
 | 
				
			||||||
 | 
					show.console.view=true
 | 
				
			||||||
 | 
					show.executions.view=true
 | 
				
			||||||
							
								
								
									
										6
									
								
								example/android/app/.classpath
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								example/android/app/.classpath
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<classpath>
 | 
				
			||||||
 | 
						<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11/"/>
 | 
				
			||||||
 | 
						<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
 | 
				
			||||||
 | 
						<classpathentry kind="output" path="bin/default"/>
 | 
				
			||||||
 | 
					</classpath>
 | 
				
			||||||
							
								
								
									
										23
									
								
								example/android/app/.project
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								example/android/app/.project
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<projectDescription>
 | 
				
			||||||
 | 
						<name>app</name>
 | 
				
			||||||
 | 
						<comment>Project app created by Buildship.</comment>
 | 
				
			||||||
 | 
						<projects>
 | 
				
			||||||
 | 
						</projects>
 | 
				
			||||||
 | 
						<buildSpec>
 | 
				
			||||||
 | 
							<buildCommand>
 | 
				
			||||||
 | 
								<name>org.eclipse.jdt.core.javabuilder</name>
 | 
				
			||||||
 | 
								<arguments>
 | 
				
			||||||
 | 
								</arguments>
 | 
				
			||||||
 | 
							</buildCommand>
 | 
				
			||||||
 | 
							<buildCommand>
 | 
				
			||||||
 | 
								<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
 | 
				
			||||||
 | 
								<arguments>
 | 
				
			||||||
 | 
								</arguments>
 | 
				
			||||||
 | 
							</buildCommand>
 | 
				
			||||||
 | 
						</buildSpec>
 | 
				
			||||||
 | 
						<natures>
 | 
				
			||||||
 | 
							<nature>org.eclipse.jdt.core.javanature</nature>
 | 
				
			||||||
 | 
							<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
 | 
				
			||||||
 | 
						</natures>
 | 
				
			||||||
 | 
					</projectDescription>
 | 
				
			||||||
@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					connection.project.dir=..
 | 
				
			||||||
 | 
					eclipse.preferences.version=1
 | 
				
			||||||
@ -1,3 +1,4 @@
 | 
				
			|||||||
android.enableJetifier=true
 | 
					android.enableJetifier=true
 | 
				
			||||||
android.useAndroidX=true
 | 
					android.useAndroidX=true
 | 
				
			||||||
org.gradle.jvmargs=-Xmx1536M
 | 
					org.gradle.jvmargs=-Xmx1536M
 | 
				
			||||||
 | 
					android.enableR8=true
 | 
				
			||||||
 | 
				
			|||||||
@ -68,8 +68,8 @@ class _MyBodyState extends State<Body> {
 | 
				
			|||||||
                ),
 | 
					                ),
 | 
				
			||||||
                RaisedButton(
 | 
					                RaisedButton(
 | 
				
			||||||
                  child: Text("askLocationPermission"),
 | 
					                  child: Text("askLocationPermission"),
 | 
				
			||||||
                  onPressed: () async {
 | 
					                  onPressed: () {
 | 
				
			||||||
                    await Nearby().askLocationPermission();
 | 
					                    Nearby().askLocationPermission();
 | 
				
			||||||
                  },
 | 
					                  },
 | 
				
			||||||
                ),
 | 
					                ),
 | 
				
			||||||
                RaisedButton(
 | 
					                RaisedButton(
 | 
				
			||||||
@ -88,8 +88,34 @@ class _MyBodyState extends State<Body> {
 | 
				
			|||||||
                ),
 | 
					                ),
 | 
				
			||||||
                RaisedButton(
 | 
					                RaisedButton(
 | 
				
			||||||
                  child: Text("askExternalStoragePermission"),
 | 
					                  child: Text("askExternalStoragePermission"),
 | 
				
			||||||
 | 
					                  onPressed: () {
 | 
				
			||||||
 | 
					                    Nearby().askExternalStoragePermission();
 | 
				
			||||||
 | 
					                  },
 | 
				
			||||||
 | 
					                ),
 | 
				
			||||||
 | 
					              ],
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					            Divider(),
 | 
				
			||||||
 | 
					            Text("Location Enabled"),
 | 
				
			||||||
 | 
					            Wrap(
 | 
				
			||||||
 | 
					              children: <Widget>[
 | 
				
			||||||
 | 
					                RaisedButton(
 | 
				
			||||||
 | 
					                  child: Text("checkLocationEnabled"),
 | 
				
			||||||
                  onPressed: () async {
 | 
					                  onPressed: () async {
 | 
				
			||||||
                    await Nearby().askExternalStoragePermission();
 | 
					                    if (await Nearby().checkLocationEnabled()) {
 | 
				
			||||||
 | 
					                      Scaffold.of(context).showSnackBar(SnackBar(
 | 
				
			||||||
 | 
					                          content:
 | 
				
			||||||
 | 
					                              Text("Location is ON :)")));
 | 
				
			||||||
 | 
					                    } else {
 | 
				
			||||||
 | 
					                      Scaffold.of(context).showSnackBar(SnackBar(
 | 
				
			||||||
 | 
					                          content: Text(
 | 
				
			||||||
 | 
					                              "Location is OFF :(")));
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                  },
 | 
				
			||||||
 | 
					                ),
 | 
				
			||||||
 | 
					                RaisedButton(
 | 
				
			||||||
 | 
					                  child: Text("enableLocationServices"),
 | 
				
			||||||
 | 
					                  onPressed: () {
 | 
				
			||||||
 | 
					                    Nearby().enableLocationServices();
 | 
				
			||||||
                  },
 | 
					                  },
 | 
				
			||||||
                ),
 | 
					                ),
 | 
				
			||||||
              ],
 | 
					              ],
 | 
				
			||||||
@ -113,7 +139,7 @@ class _MyBodyState extends State<Body> {
 | 
				
			|||||||
                          showSnackbar("Disconnected: " + id);
 | 
					                          showSnackbar("Disconnected: " + id);
 | 
				
			||||||
                        },
 | 
					                        },
 | 
				
			||||||
                      );
 | 
					                      );
 | 
				
			||||||
                      showSnackbar("ADVERTISING: "+a.toString());
 | 
					                      showSnackbar("ADVERTISING: " + a.toString());
 | 
				
			||||||
                    } catch (exception) {
 | 
					                    } catch (exception) {
 | 
				
			||||||
                      showSnackbar(exception);
 | 
					                      showSnackbar(exception);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
				
			|||||||
@ -108,7 +108,7 @@ packages:
 | 
				
			|||||||
      path: ".."
 | 
					      path: ".."
 | 
				
			||||||
      relative: true
 | 
					      relative: true
 | 
				
			||||||
    source: path
 | 
					    source: path
 | 
				
			||||||
    version: "1.0.3"
 | 
					    version: "1.1.0"
 | 
				
			||||||
  path:
 | 
					  path:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
 | 
				
			|||||||
@ -163,9 +163,22 @@ class Nearby {
 | 
				
			|||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// retruns true/false based on external storage permissions.
 | 
					  /// retruns true/false based on external storage permissions.
 | 
				
			||||||
  Future<bool> checkExternalStoragePermission() async =>
 | 
					  Future<bool> checkExternalStoragePermission() async =>
 | 
				
			||||||
      await _channel.invokeMethod(
 | 
					      await _channel.invokeMethod('checkExternalStoragePermission');
 | 
				
			||||||
        'checkExternalStoragePermission',
 | 
					
 | 
				
			||||||
      );
 | 
					  /// Convinience method
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Checks if Location/GPS is enabled
 | 
				
			||||||
 | 
					  /// 
 | 
				
			||||||
 | 
					  /// If Location isn't enabled, devices may disconnect often.
 | 
				
			||||||
 | 
					  /// Some devices may immediately disconnect
 | 
				
			||||||
 | 
					  Future<bool> checkLocationEnabled() async =>
 | 
				
			||||||
 | 
					      await _channel.invokeMethod('checkLocationEnabled');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Convinience method
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// directs user to Location Settings, so they can turn on their Location/GPS
 | 
				
			||||||
 | 
					  void enableLocationServices() =>
 | 
				
			||||||
 | 
					      _channel.invokeMethod('enableLocationServices');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Convinience method
 | 
					  /// Convinience method
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
name: nearby_connections
 | 
					name: nearby_connections
 | 
				
			||||||
description: Plugin for the android NearbyConnections API. Bytes and Files Supported.
 | 
					description: Plugin for the android NearbyConnections API. Bytes and Files Supported.
 | 
				
			||||||
version: 1.0.3
 | 
					version: 1.1.0
 | 
				
			||||||
homepage: https://github.com/mannprerak2/nearby_connections
 | 
					homepage: https://github.com/mannprerak2/nearby_connections
 | 
				
			||||||
 | 
					
 | 
				
			||||||
environment:
 | 
					environment:
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user