美文网首页
DJI无人机程序开发

DJI无人机程序开发

作者: Lucky胡 | 来源:发表于2019-04-12 13:10 被阅读0次

    步骤

    1、build.gradle中引入dji包

    apply plugin: 'com.android.application'
    
    android {
    
        ...
        defaultConfig {
            ...
        }
    
        ...
    
        packagingOptions{
            doNotStrip "*/*/libdjivideo.so"
            doNotStrip "*/*/libSDKRelativeJNI.so"
            doNotStrip "*/*/libFlyForbid.so"
            doNotStrip "*/*/libduml_vision_bokeh.so"
            doNotStrip "*/*/libyuv2.so"
            doNotStrip "*/*/libGroudStation.so"
            doNotStrip "*/*/libFRCorkscrew.so"
            doNotStrip "*/*/libUpgradeVerify.so"
            doNotStrip "*/*/libFR.so"
            exclude 'META-INF/rxjava.properties'
        }
    }
    
    dependencies {
       ...
        implementation ('com.dji:dji-sdk:4.9')
        compileOnly ('com.dji:dji-sdk-provided:4.9')
    }
    

    2、Application中初始化Helper
    在使用dji的所有函数之前,需要加载SDK classes,在Application里调用。

        @Override
        protected void attachBaseContext(Context paramContext) {
            super.attachBaseContext(paramContext);
            MultiDex.install(this);
            com.secneo.sdk.Helper.install(this);
        }
    

    注意:该方法是梆梆安全的加固库方法,跟AndroidX不兼容,在AndroidX的工程中无法使用。

    3、在AndroidManifest.xml中赋予权限

    
        <!-- SDK permission requirement -->
        <uses-permission android:name="android.permission.BLUETOOTH"/>
        <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
        <uses-permission android:name="android.permission.VIBRATE"/>
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
        <uses-permission android:name="android.permission.WAKE_LOCK"/>
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
        <uses-permission android:name="android.permission.RECORD_AUDIO"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
        <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    
        <uses-feature android:name="android.hardware.camera"/>
        <uses-feature android:name="android.hardware.camera.autofocus"/>
        <uses-feature
            android:name="android.hardware.usb.host"
            android:required="false"/>
        <uses-feature
            android:name="android.hardware.usb.accessory"
            android:required="true"/>
    
    
        <application
            android:name=".MyApplication"
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/>
                    <category android:name="android.intent.category.LAUNCHER"/>
                </intent-filter>
                <intent-filter>
                    <action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"/>
                </intent-filter>
                <meta-data
                    android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"
                    android:resource="@xml/accessory_filter"/>
            </activity>
    
            <meta-data
                android:name="com.dji.sdk.API_KEY"
                android:value="your api key"/>
    
            <!-- Required for receiving accessory attachment events.
                This is necessary for product when connecting over USB. -->
    
    
        </application>
    
    

    4、赋予所有需要的权限
    需要手动赋予所有权限,然后才能使用DJI SDK的其他方法。

    5、调用DJISDKManager的registerApp()方法注册
    传入注册回调,里面有注册成功与否、遥控器连接和断开、组件连接回调。

    DJISDKManager.getInstance().registerApp(MyApplication.getInstance(), new DJISDKManager.SDKManagerCallback() {
                            @Override
                            public void onRegister(DJIError djiError) {
                                
                            }
    
                            @Override
                            public void onProductDisconnect() {
    
                            }
    
                            @Override
                            public void onProductConnect(BaseProduct baseProduct) {
    
                            }
    
                            @Override
                            public void onComponentChange(BaseProduct.ComponentKey componentKey, BaseComponent baseComponent, BaseComponent baseComponent1) {
    
                            }
                        });
    

    6、

    相关文章

      网友评论

          本文标题:DJI无人机程序开发

          本文链接:https://www.haomeiwen.com/subject/goxtwqtx.html