深湾创新
Android SDK

Android SDK 集成指南

SDK接入示意图

SDK接入示意图

系统要求

Android版本:Android 5.0 (API Level 21) 及以上

开发工具:Android Studio 4.0 及以上

编程语言:Java 8+ 或 Kotlin 1.4+

硬件要求:支持蓝牙4.0及以上

权限要求:蓝牙、位置、存储权限

SDK集成

1. 添加依赖

在app模块的build.gradle文件中添加SDK依赖:

dependencies {
    implementation 'com.shenwan:brainwave-sdk:1.2.0'
    implementation 'androidx.appcompat:appcompat:1.4.0'
    implementation 'com.google.android.material:material:1.5.0'
}

2. 添加权限

在AndroidManifest.xml中添加必要权限:

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

3. 初始化SDK

在Application类中初始化SDK:

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        BrainwaveSDK.init(this);
    }
}

基本使用

1. 设备连接

// 创建设备管理器
DeviceManager deviceManager = BrainwaveSDK.getDeviceManager();

// 扫描设备
deviceManager.startScan(new ScanCallback() {
    @Override
    public void onDeviceFound(BrainwaveDevice device) {
        // 发现设备
        Log.d("SDK", "Found device: " + device.getName());
    }
    
    @Override
    public void onScanComplete() {
        // 扫描完成
        Log.d("SDK", "Scan completed");
    }
});

// 连接设备
deviceManager.connect(device, new ConnectionCallback() {
    @Override
    public void onConnected() {
        Log.d("SDK", "Device connected");
    }
    
    @Override
    public void onDisconnected() {
        Log.d("SDK", "Device disconnected");
    }
    
    @Override
    public void onError(int errorCode, String message) {
        Log.e("SDK", "Connection error: " + message);
    }
});

2. 数据采集

// 获取数据管理器
DataManager dataManager = BrainwaveSDK.getDataManager();

// 开始数据采集
dataManager.startCollection(new DataCallback() {
    @Override
    public void onRawData(float[] rawData) {
        // 接收原始脑电数据
        Log.d("SDK", "Raw data length: " + rawData.length);
    }
    
    @Override
    public void onProcessedData(ProcessedData data) {
        // 接收处理后的数据
        Log.d("SDK", "Attention: " + data.getAttention());
        Log.d("SDK", "Relaxation: " + data.getRelaxation());
    }
});

// 停止数据采集
dataManager.stopCollection();

高级功能

1. 数据存储

// 配置数据存储
StorageConfig config = new StorageConfig.Builder()
    .setStoragePath("/sdcard/brainwave/")
    .setFileFormat(FileFormat.CSV)
    .setAutoSave(true)
    .build();

dataManager.configureStorage(config);

// 手动保存数据
dataManager.saveData("session_001.csv");

2. 实时分析

// 获取分析器
Analyzer analyzer = BrainwaveSDK.getAnalyzer();

// 配置分析参数
AnalysisConfig config = new AnalysisConfig.Builder()
    .setWindowSize(1000)  // 分析窗口大小
    .setSamplingRate(250) // 采样率
    .setFilterEnabled(true) // 启用滤波
    .build();

analyzer.configure(config);

// 开始实时分析
analyzer.startAnalysis(new AnalysisCallback() {
    @Override
    public void onResult(AnalysisResult result) {
        // 获取分析结果
        float attention = result.getAttention();
        float relaxation = result.getRelaxation();
        float stress = result.getStress();
        
        // 更新UI
        updateUI(attention, relaxation, stress);
    }
});

示例代码

完整的Android应用示例:

public class MainActivity extends AppCompatActivity {
    private DeviceManager deviceManager;
    private DataManager dataManager;
    private BrainwaveDevice currentDevice;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        // 初始化管理器
        deviceManager = BrainwaveSDK.getDeviceManager();
        dataManager = BrainwaveSDK.getDataManager();
        
        // 设置UI事件
        findViewById(R.id.btn_scan).setOnClickListener(v -> startScan());
        findViewById(R.id.btn_connect).setOnClickListener(v -> connectDevice());
        findViewById(R.id.btn_start).setOnClickListener(v -> startCollection());
    }
    
    private void startScan() {
        deviceManager.startScan(new ScanCallback() {
            @Override
            public void onDeviceFound(BrainwaveDevice device) {
                currentDevice = device;
                runOnUiThread(() -> {
                    // 更新设备列表UI
                    updateDeviceList(device);
                });
            }
        });
    }
    
    private void connectDevice() {
        if (currentDevice != null) {
            deviceManager.connect(currentDevice, new ConnectionCallback() {
                @Override
                public void onConnected() {
                    runOnUiThread(() -> {
                        Toast.makeText(MainActivity.this, "设备连接成功", Toast.LENGTH_SHORT).show();
                    });
                }
            });
        }
    }
    
    private void startCollection() {
        dataManager.startCollection(new DataCallback() {
            @Override
            public void onProcessedData(ProcessedData data) {
                runOnUiThread(() -> {
                    // 更新数据显示
                    updateDataDisplay(data);
                });
            }
        });
    }
}