This repository has been archived on 2025-04-28. You can view files and clone it, but cannot push or open issues or pull requests.
ARPlusSystem/ARPlusSystem-250418/Assets/Scripts/RTK/RTKDev.cs

89 lines
2.3 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Android;
using UnityEngine.SceneManagement;
public class RTKDev
{
// Start is called before the first frame update
private static AndroidJavaClass _javaClass;
private static AndroidJavaObject _javaInstance = null;
public static void EnsureInstance()
{
if (Application.platform != RuntimePlatform.Android)
{
throw new System.NotSupportedException("BluetoothManager currently only works on Android.");
}
if (_javaInstance == null)
{
// context = activity.Call<AndroidJavaObject>("getApplicationContext");
_javaClass = new AndroidJavaClass("com.bonus.bdxt.RTKMainActivity");
//_javaClass = new AndroidJavaClass("im.shv.rtk.BluetoothManager");
_javaInstance = _javaClass.CallStatic<AndroidJavaObject>("getInstance");
}
}
public static void RequestPermissions()
{
if (!Permission.HasUserAuthorizedPermission(Permission.CoarseLocation)
|| !Permission.HasUserAuthorizedPermission(Permission.FineLocation)
|| !Permission.HasUserAuthorizedPermission("android.permission.BLUETOOTH_SCAN")
|| !Permission.HasUserAuthorizedPermission("android.permission.BLUETOOTH_ADVERTISE")
|| !Permission.HasUserAuthorizedPermission("android.permission.BLUETOOTH_CONNECT"))
Permission.RequestUserPermissions(new string[] {
Permission.CoarseLocation,
Permission.FineLocation,
"android.permission.BLUETOOTH_SCAN",
"android.permission.BLUETOOTH_ADVERTISE",
"android.permission.BLUETOOTH_CONNECT"
});
}
public static void Connect()
{
_javaInstance.Call("Connect");
int i = 0;
}
public static int GetConnectState()
{
return _javaInstance.Call<int>("GetConnectState");
}
public static void Disconnect()
{
_javaInstance.Call("Disconnect");
}
public static double[] GetLatLongAlt()
{
return _javaInstance.Call<double[]>("GetLatLongAlt");
}
public static int Test()
{
//return _javaInstance.Call<int>("Add", 5, 6);
SceneManager.LoadScene("Scenes/ARScene");
return 0;
}
}