打造自己的HelloDrone 無人機APP過程《0》
目錄
文章目錄
摘要
本節主要記錄開發自己的HelloDrone無人機的過程,本節是第一節歡迎批評指正!
參考資料:
部落格參考
dronekit-android原始碼
Tower原始碼
usb-serial-for-android庫
1.專案設定
1.設定一個基本的Android Studio專案
1.建立一個空白的專案
2.建立專案名稱及儲存位置
3.最後點選完成
2.新增客戶端庫
1.開啟build.gradle(Module:app),在依賴關係部分,新增下方庫並同步:
implementation 'com.o3dr.android:dronekit-android:3.0.2'
最後同步下來的資料:
3.實現TowerListener的監聽事件
public class MainActivity extends AppCompatActivity implements TowerListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onTowerConnected() {
}
@Override
public void onTowerDisconnected() {
}
}
4.初始化ControlTower 並繫結activity的生命週期
package com.example.dzuav_hellodrone;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import com.o3dr.android.client.ControlTower;
import com.o3dr.android.client.interfaces.TowerListener;
public class MainActivity extends AppCompatActivity implements TowerListener {
//定義私有的Tower APP控制
private ControlTower controlTower;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//建立私有物件
this.controlTower = new ControlTower(getApplicationContext());
}
@Override
protected void onStart() {
super.onStart();
//實現連線
this.controlTower.connect(this);
}
@Override
protected void onStop() {
super.onStop();
this.controlTower.disconnect();
}
@Override
public void onTowerConnected() {
Log.i("LXW","onTowerConnected");
}
@Override
public void onTowerDisconnected() {
Log.i("LXW","onTowerDisconnected");
}
}
5.實現無人機監聽事件
public class MainActivity extends ActionBarActivity implements DroneListener, TowerListener {
@Override
public void onDroneEvent(String event, Bundle extras) {//連線成功的回撥
}
@Override
public void onDroneServiceInterrupted(String errorMsg) {//連線失敗的回撥
}
...
}
6.無人機例項化並在tower上註冊
到這裡基本就完成了一個簡單的呼叫3DR庫的無人機連線過程,但是由於呼叫的庫內容是不可以修改的,很不方便我們的學習,因此,我們可以參考官網提供的DEMO去學習,拿到原始碼進行實現自己的無人機APP。
官網提供的原始碼可以修改的地址:dronekit-android demo
下面是自己呼叫3DR的DEMO進行修改得到的原始碼圖片
最終實現的介面是:
相關文章
- app的啟動過程(三)APP
- 打造自己的 APP「冰與火百科」(一):分析定位APP
- 基於react native打造屬於自己的部落格appReact NativeAPP
- 通過Consul Raft庫打造自己的分散式系統Raft分散式
- iOS App 的完整啟動過程iOSAPP
- 打造自己的 APP「冰與火百科」(二):介面、索引頁APP索引
- 談談自己學習設計模式的過程設計模式
- 打造自己的JavaScript工具庫JavaScript
- 如何打造自己的npm庫NPM
- 打造自己的JavaScript武器庫JavaScript
- iOS App啟動過程iOSAPP
- 過程化技術:打造「開放世界」的祕密
- 亞馬遜無人機又曝新專利,打造一個巨型無人機塔樓亞馬遜無人機
- 告別原生,打造自己的topBar
- 使用 Azure OpenAI 打造自己的 ChatGPTOpenAIChatGPT
- Mac - 打造自己的工作流Mac
- 使用hadoop打造自己的雲Hadoop
- Android App啟動過程AndroidAPP
- APP爬蟲-某APP iOS版逆向過程APP爬蟲iOS
- 深入理解 iOS App 的啟動過程iOSAPP
- 自己動手打造企業垃圾郵件過濾系統
- App 啟動過程(含 Activity 啟動過程) | 安卓 offer 收割基APP安卓
- 打造自己的 APP「冰與火百科」(三):Material Design 控制元件APPMaterial Design控制元件
- 打造自己的 APP「冰與火百科」(四):WebView 互動、夜間模式APPWebView模式
- PicGo+GitHub:打造自己的圖床PicGoGithub圖床
- 打造自己的Vue元件文件生成工具Vue元件
- 使用註解打造自己的IOC框架框架
- 為myeclipse打造自己的配色方案Eclipse
- iOS開發 APP啟動過程iOSAPP
- 電商APP測試過程中遇到的問題APP
- APP推廣過程中的10大誤區APP
- 分享一些自己的學習過程和學習方法
- 通過自己技能把某個網站的ppt全部下載下來的過程網站
- 0.去O過程實踐筆記-前言筆記
- 使用Minifly打造基於視覺感知的跟蹤無人機視覺無人機
- 前端工程化:圍繞Jenkins打造工作流的過程前端Jenkins
- 亞馬遜無人機送貨:過程心酸操碎心,但結果令人欣慰亞馬遜無人機
- c3p0使用過程中的一些疑惑