其實這個方法,不管是要開啟藍芽還是振動之類需要有權限的要求,都可以達成。
使用Android Studio可以看這篇Unity 使用Android Bluetooth (Android Studio)
建議可以先看過這篇文章(Unity使用Android的Toast),作法上有很多類似的地方。
而藍芽部分可以看這篇文章
開啟個新的專案
之後請到Unity的安裝路徑:Unity\Editor\Data\PlaybackEngines\androidplayer\development\bin
複製這個檔案到剛剛創建的Eclipse專案的libs資料夾內
之後再對該專案按下F5重新整理,即可看到如下圖所示:
再來開啟src資料夾內的MainActivity.java,編寫以下程式碼,在這個範例中是假設手機上有藍芽設備、且為不通知使用者強制開啟藍芽。
package com.example.androidbluetooth;
import android.bluetooth.BluetoothAdapter;
import com.unity3d.player.UnityPlayer;
public class MainActivity
{
public static void openBluetooth()
{
UnityPlayer.currentActivity.runOnUiThread(new Runnable()
{
@Override
public void run()
{
BluetoothAdapter bluetoothAdapter;
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (bluetoothAdapter.isEnabled() == false)
{
bluetoothAdapter.enable();
}
}
});
}
}
都好後Ctrl+S存檔,再對專案點右鍵 → Export,選擇JAR file
然後按照下面這張圖的方式勾選完畢後,按下Finish
之後開啟Unity,新建一個專案,命名為useBluetooth,並產生如下的資料夾
並將剛剛Eclipse產生的jar放到libs資料夾內
再來就是最重要的一步!
到Unity的安裝路徑:Unity\Editor\Data\PlaybackEngines\androidplayer
複製到Android資料夾內
再來就是打開這個xml檔案...
將
改為剛剛在Eclipse上建立的的 AndroidBluetooth → AndroidManifest.xml 的 package 名稱(也就是改成下面藍底的那行)
以及將這行也加入
和藍芽權限
完成後的檔案就長這樣(更動到的地方已經用綠框框住)
以上步驟都做好後,就新增三個C#腳本,分別命名為:AndroidBehaviour 、 Bluetooth 、Test
AndroidBehaviour腳本同開頭我提到的「Unity使用Android的Toast」那篇AndroidBehaviour腳本相同,所以就不再重複了
而Bluetooth腳本程式碼如下:
using UnityEngine;
using System.Collections;
public class Bluetooth : AndroidBehaviour<Bluetooth>
{
protected override string javaClassName
{
//要呼叫的class所在的Package名稱.要呼叫的java class名稱
get { return "com.example.androidbluetooth.MainActivity"; }
}
public static void openBT()
{
instance.CallStatic("openBluetooth");
}
}
Test腳本程式碼如下
using UnityEngine;
using System.Collections;
public class Test : MonoBehaviour
{
private void Start()
{
Bluetooth.openBT();
}
}
都好之後將Test和Bluetooth放到同個物件上!
(在此範例我放到Camera上)
之後在 Player Setting 內的 Bundle Identifier 要和 AndroidBluetooth 的 package 名稱一樣,且minSdk也要相同
最後就Build成apk,丟到手機上安裝執行了!(其實也可以直接Build And Run)
藍芽開啟了!(紅圈處)
完整檔案在此(包含 Eclipse 的 AndroidBluetooth 和 Unity 的 useBluetooth )
留言列表