暖暖视频免费观**,国产免费美女被艹视频,毛片一级毛片,不卡三级

智慧服務(wù),成就美好體驗(yàn) 項(xiàng)目咨詢

主頁(yè) > 服務(wù)與支持 > 開發(fā)平臺(tái) > 客戶端SDK參考 > Android Native SDK > 快速入門 快速入門

入門使用

快速入門

更新時(shí)間:2019-11-20

開發(fā)環(huán)境準(zhǔn)備

在開發(fā)的過(guò)程中請(qǐng)滿足如下環(huán)境要求。

表1 環(huán)境要求

環(huán)境和工具名稱

版本要求

操作系統(tǒng)

Windows 7專業(yè)版

Android Studio

Android Studio3.0及以上版本

會(huì)議云服務(wù)的用戶帳號(hào)

帳號(hào)可來(lái)源于華為公有云。開通方法請(qǐng)參見(jiàn)“開發(fā)前準(zhǔn)備”。

新建工程項(xiàng)目

  1. 打開Android Studio,選擇File > New > New Project… ,進(jìn)入Activity展示效果界面。

     

    圖1 Activity展示效果界面 

     

  2. 填寫“Name”、“Package name”“Save location”信息,選取最低支持系統(tǒng)的SDK版本后,單擊“Finish”,進(jìn)入工程主界面。

     

    圖2 工程配置界面 

     

  3. 在工程主界面中,選擇文件“MainActivity”“activity_main”,將文件重命名為“LoginActivity”“activity_login”

     

    圖3 工程主界面 

     

引入依賴庫(kù)

將SDK壓縮包解壓后相關(guān)文件拷貝到工程的libs路徑下。

  1. 將so文件存放到“libs/armeabi”文件夾下,jar文件存放“libs”文件夾下,如圖4所示。

     

    圖4 復(fù)制文件 

     

  2. 單擊“Sync”同步工程,如圖5所示。

     

    圖5 同步工程 

     

添加類

application

  1. 右鍵單擊已經(jīng)新建的包名“com.huawei.esdk.tup.helloworld”文件夾,右鍵選擇“New > Package”,彈出”New Package”窗口。在輸入框中輸入“application”,單擊“OK”,完成包的新建。

     

     

  2. 右鍵單擊“com.huawei.esdk.tup.helloworld.application”包,選擇“New > Java Class”,彈出“Create New Class”窗口。在”Name”處輸入“ECApplication”,單擊“OK”,完成類的新建。

     

     

Service

  1. 右鍵單擊已經(jīng)新建的包名“com.huawei.esdk.tup.helloworld”文件夾,右鍵選擇“New > Package”,彈出”New Package”窗口。在輸入框中輸入“service”,點(diǎn)擊“OK”,完成包的新建。

     

     

  2. 右鍵“com.huawei.esdk.tup.helloworld.service”包,選擇“New > Java Class”,彈出“Create New Class”窗口。在”Name”處輸入“TupLoginService”,點(diǎn)擊“OK”,完成類的新建。

     

     

  3. 右鍵“com.huawei.esdk.tup.helloworld.service”包,選擇“New > Java Class”,彈出“Create New Class”窗口。在”Name”處輸入“ServiceNotify”,點(diǎn)擊“OK”,完成類的新建。

     

     

ui

  1. 右鍵單擊已經(jīng)新建的包名“com.huawei.esdk.tup.helloworld”文件夾,右鍵選擇“New > Package”,彈出”New Package”窗口。在輸入框中輸入“ui”,點(diǎn)擊“OK”,完成包的新建。

     

     

  2. 右鍵“com.huawei.esdk.tup.helloworld”包,選擇“LoginActivity.java”右擊復(fù)制,拷貝到"ui"目錄下。

     

     

工程配置

  1. 單擊“res->values”,找到該文件夾下的“strings.xml”文件,添加配置代碼。

     

    <resources>
        <string name="app_name">HelloWorld</string>
        <string name="register_server">RegServer</string>
        <string name="server_port">ServerPort</string>
        <string name="account">Account</string>
        <string name="password">Password</string>
        <string name="login">Login</string>
        <string name="login_success">Login success</string>
        <string name="account_information_not_empty">Please enter your login parameters</string>
        <string name="set_permission_write">Please enable storage permission in the settings, otherwise the function will not be available.</string>
    </resources>
    
     

     

  2. 配置“app”文件夾下的“build.gradle”文件,工程創(chuàng)建后,在“build.gradle”中添加如下示例代碼:

     

    說(shuō)明: 

    targetSdkVersion版本需要在25及以上(targetSdkVersion 25)

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 25
        buildToolsVersion "26.0.1"
    
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
    
        defaultConfig {
            applicationId "com.huawei.esdk.tup.helloworld"
            minSdkVersion 15
            targetSdkVersion 25
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
        sourceSets {
            main {
                assets.srcDirs = ['assets', 'src/main/assets', 'src/main/assets/']
                jniLibs.srcDirs = ['libs']
            }
            instrumentTest.setRoot('tests')
            debug.setRoot('build-types/debug')
            release.setRoot('build-types/release')
        }
    }
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
            exclude group: 'com.android.support', module: 'support-annotations'
        })
        compile 'com.android.support.constraint:constraint-layout:1.0.2'
        testCompile 'junit:junit:4.12'
        compile 'com.google.code.gson:gson:2.3.1'
        implementation 'androidx.core:core:1.0.2'
    }
    
     

     

  3. AndroidManifest.xml文件中添加如下權(quán)限代碼:

     

     <!-- uses permission -->
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    
     

     

編碼實(shí)現(xiàn)

總體結(jié)構(gòu)

--- src 
 --- main 
  --- java 
    --- com.huawei.esdk.uc.helloworld.application 
       --- ECApplication.java 
    --- com.huawei.esdk.uc.helloworld.service 
       ---TupLoginService.java
    --- com.huawei.esdk.uc.helloworld.ui
       ---LoginActivity.java
  ---res 
    --- layout 
      ---activity_login.xml 
    --values 
      ---strings.xml 
 ---AndroidManifest.xml
 

源碼鏈接:Hello World源碼文件

代碼參考

  • 在AndroidManifest.xml清單文件中指定ECApplication
    <application
            android:name=".application.ECApplication"
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true">
            <activity android:name=".ui.LoginActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
     
  • 編寫LoginActivity類,初始化組件
    /**
     * Init int.
     * @param context the context
     * @param appPath the app path
     * @return the result
     */
    public boolean startService(Context context, String appPath)
    {
    	int ret;
    	tsdkManager = TsdkManager.getInstance(context, appPath, ServiceNotify.getInstance());
    
    	/* Step 1, set log param */
    	TsdkLogParam logParam = new TsdkLogParam();
    	logParam.setFileCount(1);
    	logParam.setLevel(TsdkLogLevel.TSDK_E_LOG_DEBUG);
    	logParam.setMaxSizeKb(1024 * 4);
    	logParam.setPath(Environment.getExternalStorageDirectory() + File.separator + "HelloWorld" + "/");
    
    	ret = tsdkManager.setConfigParam(logParam);
    	if (ret != 0) {
    		return false;
    	}
    
    	/* Step 2, init sdk */
    	TsdkAppInfoParam appInfoParam = new TsdkAppInfoParam();
    	appInfoParam.setClientType(TSDK_E_CLIENT_MOBILE);
    	appInfoParam.setProductName("eSDK-Mobile");
    	appInfoParam.setDeviceSn("123");
    	appInfoParam.setSupportAudioAndVideoCall(1);
    	appInfoParam.setSupportAudioAndVideoConf(0);
    	appInfoParam.setSupportDataConf(0);
    	appInfoParam.setSupportCtd(0);
    	appInfoParam.setSupportEnterpriseAddressBook(0);
    	appInfoParam.setSupportIm(0);
    	appInfoParam.setSupportRichMediaMessage(0);
    
    	ret = tsdkManager.init(appInfoParam);
    	if (ret != 0)
    	{
    		return false;
    	}
    	return true;
    }
    
     
  • 編寫ECApplication類,去初始化
        @Override
        public void onTerminate() {
            super.onTerminate();
            tsdkManager.uninit();
        }
    
     
  • 編寫TupLoginService服務(wù)類,Uportal鑒權(quán)登錄
        /**
         * Authorize login boolean.
         *
         * @param regServer  the reg server
         * @param serverPort the server port
         * @param sipNumber  the sip number
         * @param password   the password
         * @return the boolean
         */
        public boolean authorizeLogin(String regServer, String serverPort, String sipNumber, String password)
        {
            int ret;
    
            TsdkLoginParam tsdkLoginParam = new TsdkLoginParam();
            tsdkLoginParam.setUserId(1);
            tsdkLoginParam.setAuthType(TsdkAuthType.TSDK_E_AUTH_NORMAL);
            tsdkLoginParam.setUserName(sipNumber);
            tsdkLoginParam.setPassword(password);
            tsdkLoginParam.setServerAddr(regServer);
            tsdkLoginParam.setServerPort(Integer.parseInt(serverPort));
            tsdkLoginParam.setServerVersion("");
            tsdkLoginParam.setServerType(TsdkServerType.TSDK_E_SERVER_TYPE_PORTAL);
            tsdkLoginParam.setUserTiket("");
    
            ret = TsdkManager.getInstance().getLoginManager().login(tsdkLoginParam);
            if (ret != 0) {
                return false;
            }
            return true;
        }
    
     
  • ServiceNotify實(shí)現(xiàn)TsdkNotify后重寫onEvtAuthSuccess()方法,鑒權(quán)成功發(fā)送廣播。
        @Override
        public void onEvtAuthSuccess(int i, TsdkImLoginParam tsdkImLoginParam) {
            TupLoginService.getInstance().handleAuthSuccess();
        }
        public void handleAuthSuccess() {
            Log.d("TupLoginService", "onEvtAuthSuccess.");
    
            Intent intent = new Intent();
            intent.setAction(TUP_REGISTER_EVENT);
            intent.putExtra(REGISTER_RESULT, 0);
            ECApplication.getApp().sendBroadcast(intent);
        }
    
     
  • UI層注冊(cè)監(jiān)聽(tīng)廣播,保證調(diào)用鑒權(quán)接口后收到相應(yīng)回調(diào)。
        private BroadcastReceiver receiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
                if (TupLoginService.TUP_REGISTER_EVENT.equals(action))
                {
                    int result = intent.getIntExtra(TupLoginService.REGISTER_RESULT, -1);
                    switch (result)
                    {
                        case 0:
                            Toast.makeText(LoginActivity.this, getString(R.string.login_success), Toast.LENGTH_LONG).show();
                            break;
                        default:
                            break;
                    }
                }
            }
        };
    
     

調(diào)試運(yùn)行

  1. 單擊菜單欄“Run > Run > app”文件,選擇真機(jī)調(diào)試或者運(yùn)行虛擬機(jī)。

     

    圖6 界面 

     

  2. 在界面中依次輸入如下表信息:

     

    分類

    輸入信息

    說(shuō)明

    鑒權(quán)信息

    RegServer

    注冊(cè)服務(wù)器地址

    Server port

    服務(wù)器端口號(hào)

    Account

    服務(wù)號(hào)碼

    Password

    eSDK鑒權(quán)密碼

    說(shuō)明: 

    以上信息需要在成功預(yù)約華為遠(yuǎn)程實(shí)驗(yàn)室后,從遠(yuǎn)程實(shí)驗(yàn)室獲取。

    服務(wù)器地址、端口號(hào)、用戶名、密碼輸入完成后,單擊“登錄”按鈕,界面顯示“正在登錄,請(qǐng)稍后”,等待接口返回操作結(jié)果。

     

  3. 等待至頁(yè)面底部彈出Toast“Login Success”,表示登錄成功。

     

    圖7 登錄成功