wxr
2024-01-12 0edc5ba8ac6d6604b1deea525a42548f9dc9ccce
增加单元测试项目,更新萤石SDK
37个文件已添加
5个文件已修改
1662 ■■■■ 已修改文件
DLL/HdlEzvizDroid.dll 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/HDL-ON_Android.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Properties/AndroidManifest.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/Resource.designer.cs 755 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_APP_Project.sln 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/ApiPostTests.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Assets/AboutAssets.txt 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/MainActivity.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/NunitTest-Android.csproj 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Properties/AndroidManifest.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Properties/AssemblyInfo.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/AboutResources.txt 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/Resource.designer.cs 234 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/mipmap-anydpi-v26/ic_launcher.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/mipmap-anydpi-v26/ic_launcher_round.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/mipmap-hdpi/ic_launcher.png 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/mipmap-hdpi/ic_launcher_foreground.png 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/mipmap-hdpi/ic_launcher_round.png 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/mipmap-mdpi/ic_launcher.png 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/mipmap-mdpi/ic_launcher_foreground.png 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/mipmap-mdpi/ic_launcher_round.png 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/mipmap-xhdpi/ic_launcher.png 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/mipmap-xhdpi/ic_launcher_foreground.png 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/mipmap-xhdpi/ic_launcher_round.png 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/mipmap-xxhdpi/ic_launcher.png 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/mipmap-xxhdpi/ic_launcher_foreground.png 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/mipmap-xxhdpi/ic_launcher_round.png 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/mipmap-xxxhdpi/ic_launcher.png 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/mipmap-xxxhdpi/ic_launcher_foreground.png 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/mipmap-xxxhdpi/ic_launcher_round.png 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/values/colors.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/values/ic_launcher_background.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/Resources/values/strings.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Android/TestsSample.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Ios/ApiPostTests.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Ios/Entitlements.plist 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Ios/Info.plist 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Ios/LaunchScreen.storyboard 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Ios/Main.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Ios/NunitTest-Ios.csproj 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Ios/UnitTestAppDelegate.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
NunitTest-Ios/packages.config 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/HdlEzvizDroid.dll
Binary files differ
HDL-ON_Android/HDL-ON_Android.csproj
@@ -196,7 +196,7 @@
      <HintPath>..\DLL\Android\Shared.Droid.dll</HintPath>
    </Reference>
    <Reference Include="HdlEzvizDroid">
      <HintPath>..\..\..\HdlEzvizDroid.dll</HintPath>
      <HintPath>..\..\App-Pages\2024\On Pro\Android\SDK\ez\2024-01-11\HdlEzvizDroid.dll</HintPath>
    </Reference>
  </ItemGroup>
  <ItemGroup>
HDL-ON_Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="2.4.3" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools" android:versionCode="202401101">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="2.4.3" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools" android:versionCode="202401111">
    <uses-sdk android:minSdkVersion="26" android:targetSdkVersion="29" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <!--友盟-->
HDL-ON_Android/Resources/Resource.designer.cs
@@ -19735,928 +19735,931 @@
            public const int please_try_connect_device_hotspot_manually = 2131690306;
            
            // aapt resource value: 0x7F0F0343
            public const int plug = 2131690307;
            public const int please_try_connect_device_hotspot_manually2 = 2131690307;
            
            // aapt resource value: 0x7F0F0344
            public const int pm = 2131690308;
            public const int plug = 2131690308;
            
            // aapt resource value: 0x7F0F0345
            public const int press_again_to_exit = 2131690309;
            public const int pm = 2131690309;
            
            // aapt resource value: 0x7F0F0346
            public const int press_to_talk_release_to_listen = 2131690310;
            public const int press_again_to_exit = 2131690310;
            
            // aapt resource value: 0x7F0F0347
            public const int privacy_masking = 2131690311;
            public const int press_to_talk_release_to_listen = 2131690311;
            
            // aapt resource value: 0x7F0F0348
            public const int privacy_policy_and_service_agreement = 2131690312;
            public const int privacy_masking = 2131690312;
            
            // aapt resource value: 0x7F0F0349
            public const int probe_not_support_tip = 2131690313;
            public const int privacy_policy_and_service_agreement = 2131690313;
            
            // aapt resource value: 0x7F0F034A
            public const int promptUserToActivate = 2131690314;
            public const int probe_not_support_tip = 2131690314;
            
            // aapt resource value: 0x7F0F034B
            public const int ptz = 2131690315;
            public const int promptUserToActivate = 2131690315;
            
            // aapt resource value: 0x7F0F034C
            public const int ptz_control_timeout_cruise_track_failed = 2131690316;
            public const int ptz = 2131690316;
            
            // aapt resource value: 0x7F0F034D
            public const int ptz_control_timeout_sound_lacalization_failed = 2131690317;
            public const int ptz_control_timeout_cruise_track_failed = 2131690317;
            
            // aapt resource value: 0x7F0F034E
            public const int ptz_is_preseting = 2131690318;
            public const int ptz_control_timeout_sound_lacalization_failed = 2131690318;
            
            // aapt resource value: 0x7F0F034F
            public const int ptz_mirroring_failed = 2131690319;
            public const int ptz_is_preseting = 2131690319;
            
            // aapt resource value: 0x7F0F0350
            public const int ptz_operation_failed = 2131690320;
            public const int ptz_mirroring_failed = 2131690320;
            
            // aapt resource value: 0x7F0F0351
            public const int ptz_operation_too_frequently = 2131690321;
            public const int ptz_operation_failed = 2131690321;
            
            // aapt resource value: 0x7F0F0352
            public const int ptz_preset_current_position_failed = 2131690322;
            public const int ptz_operation_too_frequently = 2131690322;
            
            // aapt resource value: 0x7F0F0353
            public const int ptz_preset_exceed_maxnum_failed = 2131690323;
            public const int ptz_preset_current_position_failed = 2131690323;
            
            // aapt resource value: 0x7F0F0354
            public const int ptz_preset_invalid_position_failed = 2131690324;
            public const int ptz_preset_exceed_maxnum_failed = 2131690324;
            
            // aapt resource value: 0x7F0F0355
            public const int ptz_preset_sound_localization_failed = 2131690325;
            public const int ptz_preset_invalid_position_failed = 2131690325;
            
            // aapt resource value: 0x7F0F0356
            public const int ptz_privacying_failed = 2131690326;
            public const int ptz_preset_sound_localization_failed = 2131690326;
            
            // aapt resource value: 0x7F0F0357
            public const int pull_to_refresh_from_bottom_pull_label = 2131690327;
            public const int ptz_privacying_failed = 2131690327;
            
            // aapt resource value: 0x7F0F0358
            public const int pull_to_refresh_from_bottom_refreshing_label = 2131690328;
            public const int pull_to_refresh_from_bottom_pull_label = 2131690328;
            
            // aapt resource value: 0x7F0F0359
            public const int pull_to_refresh_from_bottom_release_label = 2131690329;
            public const int pull_to_refresh_from_bottom_refreshing_label = 2131690329;
            
            // aapt resource value: 0x7F0F035A
            public const int pull_to_refresh_pull_label = 2131690330;
            public const int pull_to_refresh_from_bottom_release_label = 2131690330;
            
            // aapt resource value: 0x7F0F035B
            public const int pull_to_refresh_refreshing_label = 2131690331;
            public const int pull_to_refresh_pull_label = 2131690331;
            
            // aapt resource value: 0x7F0F035C
            public const int pull_to_refresh_release_label = 2131690332;
            public const int pull_to_refresh_refreshing_label = 2131690332;
            
            // aapt resource value: 0x7F0F035D
            public const int push_cat_body = 2131690333;
            public const int pull_to_refresh_release_label = 2131690333;
            
            // aapt resource value: 0x7F0F035E
            public const int push_cat_head = 2131690334;
            public const int push_cat_body = 2131690334;
            
            // aapt resource value: 0x7F0F035F
            public const int push_event_alarm_title = 2131690335;
            public const int push_cat_head = 2131690335;
            
            // aapt resource value: 0x7F0F0360
            public const int push_event_from = 2131690336;
            public const int push_event_alarm_title = 2131690336;
            
            // aapt resource value: 0x7F0F0361
            public const int push_event_get = 2131690337;
            public const int push_event_from = 2131690337;
            
            // aapt resource value: 0x7F0F0362
            public const int push_event_get_count = 2131690338;
            public const int push_event_get = 2131690338;
            
            // aapt resource value: 0x7F0F0363
            public const int push_out_event_alarm_title = 2131690339;
            public const int push_event_get_count = 2131690339;
            
            // aapt resource value: 0x7F0F0364
            public const int pwd_not_contain_chinese = 2131690340;
            public const int push_out_event_alarm_title = 2131690340;
            
            // aapt resource value: 0x7F0F0365
            public const int qrcode_card = 2131690341;
            public const int pwd_not_contain_chinese = 2131690341;
            
            // aapt resource value: 0x7F0F0366
            public const int quality_balanced = 2131690342;
            public const int qrcode_card = 2131690342;
            
            // aapt resource value: 0x7F0F0367
            public const int quality_flunet = 2131690343;
            public const int quality_balanced = 2131690343;
            
            // aapt resource value: 0x7F0F0368
            public const int quality_hd = 2131690344;
            public const int quality_flunet = 2131690344;
            
            // aapt resource value: 0x7F0F0369
            public const int quality_super_hd = 2131690345;
            // aapt resource value: 0x7F0F0370
            public const int querying_camera_text = 2131690352;
            public const int quality_hd = 2131690345;
            
            // aapt resource value: 0x7F0F036A
            public const int query_camera_fail = 2131690346;
            // aapt resource value: 0x7F0F036B
            public const int query_camera_fail_network_exception = 2131690347;
            // aapt resource value: 0x7F0F036C
            public const int query_camera_fail_network_exception_or_server_exception = 2131690348;
            // aapt resource value: 0x7F0F036D
            public const int query_camera_fail_not_exit = 2131690349;
            // aapt resource value: 0x7F0F036E
            public const int query_camera_fail_repeat_error = 2131690350;
            // aapt resource value: 0x7F0F036F
            public const int query_camera_fail_server_exception = 2131690351;
            // aapt resource value: 0x7F0F0372
            public const int readed = 2131690354;
            public const int quality_super_hd = 2131690346;
            
            // aapt resource value: 0x7F0F0371
            public const int read_privacy_policy_and_service_agreement_tip = 2131690353;
            public const int querying_camera_text = 2131690353;
            // aapt resource value: 0x7F0F036B
            public const int query_camera_fail = 2131690347;
            // aapt resource value: 0x7F0F036C
            public const int query_camera_fail_network_exception = 2131690348;
            // aapt resource value: 0x7F0F036D
            public const int query_camera_fail_network_exception_or_server_exception = 2131690349;
            // aapt resource value: 0x7F0F036E
            public const int query_camera_fail_not_exit = 2131690350;
            // aapt resource value: 0x7F0F036F
            public const int query_camera_fail_repeat_error = 2131690351;
            // aapt resource value: 0x7F0F0370
            public const int query_camera_fail_server_exception = 2131690352;
            
            // aapt resource value: 0x7F0F0373
            public const int realplay = 2131690355;
            public const int readed = 2131690355;
            // aapt resource value: 0x7F0F0372
            public const int read_privacy_policy_and_service_agreement_tip = 2131690354;
            
            // aapt resource value: 0x7F0F0374
            public const int realplay_close_sound_localization_fail = 2131690356;
            public const int realplay = 2131690356;
            
            // aapt resource value: 0x7F0F0375
            public const int realplay_encrypt_password_error_message = 2131690357;
            public const int realplay_close_sound_localization_fail = 2131690357;
            
            // aapt resource value: 0x7F0F0376
            public const int realplay_encrypt_password_error_title = 2131690358;
            public const int realplay_encrypt_password_error_message = 2131690358;
            
            // aapt resource value: 0x7F0F0377
            public const int realplay_fail_connect_device = 2131690359;
            public const int realplay_encrypt_password_error_title = 2131690359;
            
            // aapt resource value: 0x7F0F0378
            public const int realplay_fail_device_not_exist = 2131690360;
            public const int realplay_fail_connect_device = 2131690360;
            
            // aapt resource value: 0x7F0F0379
            public const int realplay_full_talk_start_tip = 2131690361;
            public const int realplay_fail_device_not_exist = 2131690361;
            
            // aapt resource value: 0x7F0F037A
            public const int realplay_loading = 2131690362;
            public const int realplay_full_talk_start_tip = 2131690362;
            
            // aapt resource value: 0x7F0F037B
            public const int realplay_login_password_error = 2131690363;
            public const int realplay_loading = 2131690363;
            
            // aapt resource value: 0x7F0F037C
            public const int realplay_login_password_msg = 2131690364;
            public const int realplay_login_password_error = 2131690364;
            
            // aapt resource value: 0x7F0F037D
            public const int realplay_no_encrypt_password_error = 2131690365;
            public const int realplay_login_password_msg = 2131690365;
            
            // aapt resource value: 0x7F0F037E
            public const int realplay_no_permission = 2131690366;
            public const int realplay_no_encrypt_password_error = 2131690366;
            
            // aapt resource value: 0x7F0F037F
            public const int realplay_open_sound_localization_fail = 2131690367;
            public const int realplay_no_permission = 2131690367;
            
            // aapt resource value: 0x7F0F0380
            public const int realplay_password_error_message1 = 2131690368;
            public const int realplay_open_sound_localization_fail = 2131690368;
            
            // aapt resource value: 0x7F0F0381
            public const int realplay_password_error_message3 = 2131690369;
            public const int realplay_password_error_message1 = 2131690369;
            
            // aapt resource value: 0x7F0F0382
            public const int realplay_password_error_message4 = 2131690370;
            public const int realplay_password_error_message3 = 2131690370;
            
            // aapt resource value: 0x7F0F0383
            public const int realplay_password_error_title = 2131690371;
            public const int realplay_password_error_message4 = 2131690371;
            
            // aapt resource value: 0x7F0F0384
            public const int realplay_play_fail = 2131690372;
            public const int realplay_password_error_title = 2131690372;
            
            // aapt resource value: 0x7F0F0385
            public const int realplay_play_fail_becauseof_network = 2131690373;
            public const int realplay_play_fail = 2131690373;
            
            // aapt resource value: 0x7F0F0386
            public const int realplay_play_no_video_source = 2131690374;
            public const int realplay_play_fail_becauseof_network = 2131690374;
            
            // aapt resource value: 0x7F0F0387
            public const int realplay_play_talkback_fail = 2131690375;
            public const int realplay_play_no_video_source = 2131690375;
            
            // aapt resource value: 0x7F0F0388
            public const int realplay_play_talkback_fail_ison = 2131690376;
            public const int realplay_play_talkback_fail = 2131690376;
            
            // aapt resource value: 0x7F0F0389
            public const int realplay_play_talkback_fail_privacy = 2131690377;
            public const int realplay_play_talkback_fail_ison = 2131690377;
            
            // aapt resource value: 0x7F0F038A
            public const int realplay_play_talkback_network_exception = 2131690378;
            public const int realplay_play_talkback_fail_privacy = 2131690378;
            
            // aapt resource value: 0x7F0F038B
            public const int realplay_play_talkback_request_timeout = 2131690379;
            public const int realplay_play_talkback_network_exception = 2131690379;
            
            // aapt resource value: 0x7F0F038C
            public const int realplay_set_fail_network = 2131690380;
            public const int realplay_play_talkback_request_timeout = 2131690380;
            
            // aapt resource value: 0x7F0F038D
            public const int realplay_set_fail_status = 2131690381;
            public const int realplay_set_fail_network = 2131690381;
            
            // aapt resource value: 0x7F0F038E
            public const int realplay_set_vediomode_fail = 2131690382;
            public const int realplay_set_fail_status = 2131690382;
            
            // aapt resource value: 0x7F0F038F
            public const int realplay_share_no_permission = 2131690383;
            public const int realplay_set_vediomode_fail = 2131690383;
            
            // aapt resource value: 0x7F0F0390
            public const int realplay_share_time_over = 2131690384;
            public const int realplay_share_no_permission = 2131690384;
            
            // aapt resource value: 0x7F0F0391
            public const int realplay_verifycode_error_message0 = 2131690385;
            public const int realplay_share_time_over = 2131690385;
            
            // aapt resource value: 0x7F0F0392
            public const int realplay_verifycode_error_placehold = 2131690386;
            public const int realplay_verifycode_error_message0 = 2131690386;
            
            // aapt resource value: 0x7F0F0393
            public const int receice_leave_msg_audio = 2131690387;
            public const int realplay_verifycode_error_placehold = 2131690387;
            
            // aapt resource value: 0x7F0F0394
            public const int receice_leave_msg_video = 2131690388;
            public const int receice_leave_msg_audio = 2131690388;
            
            // aapt resource value: 0x7F0F0395
            public const int record = 2131690389;
            public const int receice_leave_msg_video = 2131690389;
            
            // aapt resource value: 0x7F0F0396
            public const int refresh = 2131690390;
            // aapt resource value: 0x7F0F039A
            public const int refreshing = 2131690394;
            public const int record = 2131690390;
            
            // aapt resource value: 0x7F0F0397
            public const int refresh_done = 2131690391;
            // aapt resource value: 0x7F0F0398
            public const int refresh_empty_hint = 2131690392;
            // aapt resource value: 0x7F0F0399
            public const int refresh_fail_hint = 2131690393;
            // aapt resource value: 0x7F0F039C
            public const int remoteplayback_capture_fail = 2131690396;
            // aapt resource value: 0x7F0F039D
            public const int remoteplayback_capture_fail_for_memory = 2131690397;
            // aapt resource value: 0x7F0F039E
            public const int remoteplayback_connect_device_error = 2131690398;
            // aapt resource value: 0x7F0F039F
            public const int remoteplayback_connect_server_error = 2131690399;
            // aapt resource value: 0x7F0F03A0
            public const int remoteplayback_fail = 2131690400;
            // aapt resource value: 0x7F0F03A1
            public const int remoteplayback_norecordfile = 2131690401;
            // aapt resource value: 0x7F0F03A2
            public const int remoteplayback_norecordfile_alarm = 2131690402;
            // aapt resource value: 0x7F0F03A3
            public const int remoteplayback_over_link = 2131690403;
            // aapt resource value: 0x7F0F03A4
            public const int remoteplayback_record_fail = 2131690404;
            // aapt resource value: 0x7F0F03A5
            public const int remoteplayback_record_fail_for_memory = 2131690405;
            public const int refresh = 2131690391;
            
            // aapt resource value: 0x7F0F039B
            public const int remoteplayback_SDCard_disable_use = 2131690395;
            public const int refreshing = 2131690395;
            // aapt resource value: 0x7F0F0398
            public const int refresh_done = 2131690392;
            // aapt resource value: 0x7F0F0399
            public const int refresh_empty_hint = 2131690393;
            // aapt resource value: 0x7F0F039A
            public const int refresh_fail_hint = 2131690394;
            // aapt resource value: 0x7F0F039D
            public const int remoteplayback_capture_fail = 2131690397;
            // aapt resource value: 0x7F0F039E
            public const int remoteplayback_capture_fail_for_memory = 2131690398;
            // aapt resource value: 0x7F0F039F
            public const int remoteplayback_connect_device_error = 2131690399;
            // aapt resource value: 0x7F0F03A0
            public const int remoteplayback_connect_server_error = 2131690400;
            // aapt resource value: 0x7F0F03A1
            public const int remoteplayback_fail = 2131690401;
            // aapt resource value: 0x7F0F03A2
            public const int remoteplayback_norecordfile = 2131690402;
            // aapt resource value: 0x7F0F03A3
            public const int remoteplayback_norecordfile_alarm = 2131690403;
            // aapt resource value: 0x7F0F03A4
            public const int remoteplayback_over_link = 2131690404;
            // aapt resource value: 0x7F0F03A5
            public const int remoteplayback_record_fail = 2131690405;
            
            // aapt resource value: 0x7F0F03A6
            public const int remoteplayback_searchfile_fail_for_device = 2131690406;
            public const int remoteplayback_record_fail_for_memory = 2131690406;
            // aapt resource value: 0x7F0F039C
            public const int remoteplayback_SDCard_disable_use = 2131690396;
            
            // aapt resource value: 0x7F0F03A7
            public const int remoteplayback_searchfile_fail_for_network = 2131690407;
            public const int remoteplayback_searchfile_fail_for_device = 2131690407;
            
            // aapt resource value: 0x7F0F03A8
            public const int reset_10_sec_to_release = 2131690408;
            public const int remoteplayback_searchfile_fail_for_network = 2131690408;
            
            // aapt resource value: 0x7F0F03A9
            public const int reset_device = 2131690409;
            public const int reset_10_sec_to_release = 2131690409;
            
            // aapt resource value: 0x7F0F03AA
            public const int result_txt = 2131690410;
            public const int reset_device = 2131690410;
            
            // aapt resource value: 0x7F0F03AB
            public const int retry = 2131690411;
            // aapt resource value: 0x7F0F03AD
            public const int router = 2131690413;
            public const int result_txt = 2131690411;
            
            // aapt resource value: 0x7F0F03AC
            public const int route_status_light = 2131690412;
            public const int retry = 2131690412;
            
            // aapt resource value: 0x7F0F03AE
            public const int sadp_activate_state1 = 2131690414;
            public const int router = 2131690414;
            // aapt resource value: 0x7F0F03AD
            public const int route_status_light = 2131690413;
            
            // aapt resource value: 0x7F0F03AF
            public const int sadp_activate_state2 = 2131690415;
            public const int sadp_activate_state1 = 2131690415;
            
            // aapt resource value: 0x7F0F03B0
            public const int sadp_password_input_hint = 2131690416;
            public const int sadp_activate_state2 = 2131690416;
            
            // aapt resource value: 0x7F0F03B1
            public const int sadp_password_toast = 2131690417;
            public const int sadp_password_input_hint = 2131690417;
            
            // aapt resource value: 0x7F0F03B2
            public const int sadp_password_too_weak = 2131690418;
            public const int sadp_password_toast = 2131690418;
            
            // aapt resource value: 0x7F0F03B3
            public const int sadp_quit_activate = 2131690419;
            public const int sadp_password_too_weak = 2131690419;
            
            // aapt resource value: 0x7F0F03B4
            public const int save_encrypt_password_fail_network_exception = 2131690420;
            public const int sadp_quit_activate = 2131690420;
            
            // aapt resource value: 0x7F0F03B5
            public const int scan_add = 2131690421;
            public const int save_encrypt_password_fail_network_exception = 2131690421;
            
            // aapt resource value: 0x7F0F03B6
            public const int scan_connet_network = 2131690422;
            public const int scan_add = 2131690422;
            
            // aapt resource value: 0x7F0F03B7
            public const int scan_cue_txt = 2131690423;
            public const int scan_connet_network = 2131690423;
            
            // aapt resource value: 0x7F0F03B8
            public const int scan_device_add_by_others = 2131690424;
            public const int scan_cue_txt = 2131690424;
            
            // aapt resource value: 0x7F0F03B9
            public const int scan_device_search = 2131690425;
            public const int scan_device_add_by_others = 2131690425;
            
            // aapt resource value: 0x7F0F03BA
            public const int scan_device_serial_no = 2131690426;
            public const int scan_device_search = 2131690426;
            
            // aapt resource value: 0x7F0F03BB
            public const int scan_network_unavailible = 2131690427;
            public const int scan_device_serial_no = 2131690427;
            
            // aapt resource value: 0x7F0F03BC
            public const int scan_probe_qrcode_error = 2131690428;
            public const int scan_network_unavailible = 2131690428;
            
            // aapt resource value: 0x7F0F03BD
            public const int scan_search_probe_qrcode = 2131690429;
            public const int scan_probe_qrcode_error = 2131690429;
            
            // aapt resource value: 0x7F0F03BE
            public const int scan_title = 2131690430;
            public const int scan_search_probe_qrcode = 2131690430;
            
            // aapt resource value: 0x7F0F03BF
            public const int scan_title_txt = 2131690431;
            public const int scan_title = 2131690431;
            
            // aapt resource value: 0x7F0F03C0
            public const int screenshot_fail = 2131690432;
            public const int scan_title_txt = 2131690432;
            
            // aapt resource value: 0x7F0F03C1
            public const int screenshot_success = 2131690433;
            // aapt resource value: 0x7F0F03C4
            public const int sdk_is_init = 2131690436;
            // aapt resource value: 0x7F0F03C3
            public const int sd_card_formatting = 2131690435;
            public const int screenshot_fail = 2131690433;
            
            // aapt resource value: 0x7F0F03C2
            public const int sd_card_format_tip = 2131690434;
            public const int screenshot_success = 2131690434;
            
            // aapt resource value: 0x7F0F03C5
            public const int search = 2131690437;
            public const int sdk_is_init = 2131690437;
            // aapt resource value: 0x7F0F03C4
            public const int sd_card_formatting = 2131690436;
            // aapt resource value: 0x7F0F03C3
            public const int sd_card_format_tip = 2131690435;
            
            // aapt resource value: 0x7F0F03C6
            public const int search_menu_title = 2131690438;
            public const int search = 2131690438;
            
            // aapt resource value: 0x7F0F03C7
            public const int secure_validate = 2131690439;
            // aapt resource value: 0x7F0F03C9
            public const int secure_validatee_fail = 2131690441;
            public const int search_menu_title = 2131690439;
            
            // aapt resource value: 0x7F0F03C8
            public const int secure_validate_success = 2131690440;
            public const int secure_validate = 2131690440;
            
            // aapt resource value: 0x7F0F03CA
            public const int seek_camera_fail_device_not_support_shipin7 = 2131690442;
            public const int secure_validatee_fail = 2131690442;
            // aapt resource value: 0x7F0F03C9
            public const int secure_validate_success = 2131690441;
            
            // aapt resource value: 0x7F0F03CB
            public const int select_all = 2131690443;
            public const int seek_camera_fail_device_not_support_shipin7 = 2131690443;
            
            // aapt resource value: 0x7F0F03CC
            public const int select_date = 2131690444;
            public const int select_all = 2131690444;
            
            // aapt resource value: 0x7F0F03CD
            public const int select_set_parameters = 2131690445;
            public const int select_date = 2131690445;
            
            // aapt resource value: 0x7F0F03CE
            public const int select_set_wifi = 2131690446;
            public const int select_set_parameters = 2131690446;
            
            // aapt resource value: 0x7F0F03CF
            public const int serial_add_hint = 2131690447;
            public const int select_set_wifi = 2131690447;
            
            // aapt resource value: 0x7F0F03D0
            public const int serial_add_password_error_title = 2131690448;
            public const int serial_add_hint = 2131690448;
            
            // aapt resource value: 0x7F0F03D1
            public const int serial_input_text = 2131690449;
            public const int serial_add_password_error_title = 2131690449;
            
            // aapt resource value: 0x7F0F03D2
            public const int serial_number_error = 2131690450;
            public const int serial_input_text = 2131690450;
            
            // aapt resource value: 0x7F0F03D3
            public const int serial_number_is_null = 2131690451;
            public const int serial_number_error = 2131690451;
            
            // aapt resource value: 0x7F0F03D4
            public const int serial_number_put_the_right_no = 2131690452;
            public const int serial_number_is_null = 2131690452;
            
            // aapt resource value: 0x7F0F03D5
            public const int server_area = 2131690453;
            // aapt resource value: 0x7F0F03DA
            public const int setting = 2131690458;
            // aapt resource value: 0x7F0F03DB
            public const int setting_video_level = 2131690459;
            public const int serial_number_put_the_right_no = 2131690453;
            
            // aapt resource value: 0x7F0F03D6
            public const int set_defence_plan = 2131690454;
            public const int server_area = 2131690454;
            
            // aapt resource value: 0x7F0F03D7
            public const int set_device_wifi_network_need_reset_the_device = 2131690455;
            // aapt resource value: 0x7F0F03D8
            public const int set_ptz_flip_fail = 2131690456;
            // aapt resource value: 0x7F0F03D9
            public const int set_ptz_flip_success = 2131690457;
            // aapt resource value: 0x7F0F03DB
            public const int setting = 2131690459;
            
            // aapt resource value: 0x7F0F03DC
            public const int share_devices = 2131690460;
            public const int setting_video_level = 2131690460;
            // aapt resource value: 0x7F0F03D7
            public const int set_defence_plan = 2131690455;
            // aapt resource value: 0x7F0F03D8
            public const int set_device_wifi_network_need_reset_the_device = 2131690456;
            // aapt resource value: 0x7F0F03D9
            public const int set_ptz_flip_fail = 2131690457;
            // aapt resource value: 0x7F0F03DA
            public const int set_ptz_flip_success = 2131690458;
            
            // aapt resource value: 0x7F0F03DD
            public const int sms_verify_bind_error = 2131690461;
            public const int share_devices = 2131690461;
            
            // aapt resource value: 0x7F0F03DE
            public const int sms_verify_code_received = 2131690462;
            public const int sms_verify_bind_error = 2131690462;
            
            // aapt resource value: 0x7F0F03DF
            public const int source_detection_off = 2131690463;
            public const int sms_verify_code_received = 2131690463;
            
            // aapt resource value: 0x7F0F03E0
            public const int source_detection_on = 2131690464;
            public const int source_detection_off = 2131690464;
            
            // aapt resource value: 0x7F0F03E1
            public const int specified_device = 2131690465;
            public const int source_detection_on = 2131690465;
            
            // aapt resource value: 0x7F0F03E2
            public const int srl_component_falsify = 2131690466;
            public const int specified_device = 2131690466;
            
            // aapt resource value: 0x7F0F03E3
            public const int srl_content_empty = 2131690467;
            public const int srl_component_falsify = 2131690467;
            
            // aapt resource value: 0x7F0F03E4
            public const int srl_footer_failed = 2131690468;
            public const int srl_content_empty = 2131690468;
            
            // aapt resource value: 0x7F0F03E5
            public const int srl_footer_finish = 2131690469;
            public const int srl_footer_failed = 2131690469;
            
            // aapt resource value: 0x7F0F03E6
            public const int srl_footer_loading = 2131690470;
            public const int srl_footer_finish = 2131690470;
            
            // aapt resource value: 0x7F0F03E7
            public const int srl_footer_nothing = 2131690471;
            public const int srl_footer_loading = 2131690471;
            
            // aapt resource value: 0x7F0F03E8
            public const int srl_footer_pulling = 2131690472;
            public const int srl_footer_nothing = 2131690472;
            
            // aapt resource value: 0x7F0F03E9
            public const int srl_footer_refreshing = 2131690473;
            public const int srl_footer_pulling = 2131690473;
            
            // aapt resource value: 0x7F0F03EA
            public const int srl_footer_release = 2131690474;
            public const int srl_footer_refreshing = 2131690474;
            
            // aapt resource value: 0x7F0F03EB
            public const int srl_header_failed = 2131690475;
            public const int srl_footer_release = 2131690475;
            
            // aapt resource value: 0x7F0F03EC
            public const int srl_header_finish = 2131690476;
            public const int srl_header_failed = 2131690476;
            
            // aapt resource value: 0x7F0F03ED
            public const int srl_header_loading = 2131690477;
            public const int srl_header_finish = 2131690477;
            
            // aapt resource value: 0x7F0F03EE
            public const int srl_header_pulling = 2131690478;
            public const int srl_header_loading = 2131690478;
            
            // aapt resource value: 0x7F0F03EF
            public const int srl_header_refreshing = 2131690479;
            public const int srl_header_pulling = 2131690479;
            
            // aapt resource value: 0x7F0F03F0
            public const int srl_header_release = 2131690480;
            public const int srl_header_refreshing = 2131690480;
            
            // aapt resource value: 0x7F0F03F1
            public const int srl_header_secondary = 2131690481;
            public const int srl_header_release = 2131690481;
            
            // aapt resource value: 0x7F0F03F2
            public const int srl_header_update = 2131690482;
            public const int srl_header_secondary = 2131690482;
            
            // aapt resource value: 0x7F0F03F3
            public const int start_cloud = 2131690483;
            public const int srl_header_update = 2131690483;
            
            // aapt resource value: 0x7F0F03F4
            public const int start_to_experience = 2131690484;
            public const int start_cloud = 2131690484;
            
            // aapt resource value: 0x7F0F03F5
            public const int start_voice_talk = 2131690485;
            public const int start_to_experience = 2131690485;
            
            // aapt resource value: 0x7F0F03F6
            public const int status_bar_notification_info_overflow = 2131690486;
            public const int start_voice_talk = 2131690486;
            
            // aapt resource value: 0x7F0F03F7
            public const int step3_adding_device_to_account = 2131690487;
            public const int status_bar_notification_info_overflow = 2131690487;
            
            // aapt resource value: 0x7F0F03F8
            public const int stop = 2131690488;
            public const int step3_adding_device_to_account = 2131690488;
            
            // aapt resource value: 0x7F0F03F9
            public const int storage_status = 2131690489;
            public const int stop = 2131690489;
            
            // aapt resource value: 0x7F0F03FA
            public const int stream_type = 2131690490;
            // aapt resource value: 0x7F0F03FD
            public const int string_apiurl = 2131690493;
            public const int storage_status = 2131690490;
            
            // aapt resource value: 0x7F0F03FB
            public const int string_ap_connection = 2131690491;
            // aapt resource value: 0x7F0F03FC
            public const int string_ap_connection_normal = 2131690492;
            public const int stream_type = 2131690491;
            
            // aapt resource value: 0x7F0F03FE
            public const int string_authurl = 2131690494;
            public const int string_apiurl = 2131690494;
            
            // aapt resource value: 0x7F0F0400
            public const int string_deviceserial = 2131690496;
            // aapt resource value: 0x7F0F03FC
            public const int string_ap_connection = 2131690492;
            // aapt resource value: 0x7F0F03FD
            public const int string_ap_connection_normal = 2131690493;
            
            // aapt resource value: 0x7F0F03FF
            public const int string_device_network_mode = 2131690495;
            public const int string_authurl = 2131690495;
            
            // aapt resource value: 0x7F0F0401
            public const int string_ezopenurl = 2131690497;
            public const int string_deviceserial = 2131690497;
            // aapt resource value: 0x7F0F0400
            public const int string_device_network_mode = 2131690496;
            
            // aapt resource value: 0x7F0F0402
            public const int string_get_device_version_fail = 2131690498;
            public const int string_ezopenurl = 2131690498;
            
            // aapt resource value: 0x7F0F0403
            public const int string_smart_and_sound_wave_connection = 2131690499;
            public const int string_get_device_version_fail = 2131690499;
            
            // aapt resource value: 0x7F0F0404
            public const int string_smart_connection = 2131690500;
            public const int string_smart_and_sound_wave_connection = 2131690500;
            
            // aapt resource value: 0x7F0F0405
            public const int string_smart_connection_normal = 2131690501;
            public const int string_smart_connection = 2131690501;
            
            // aapt resource value: 0x7F0F0406
            public const int string_sound_wave_connection = 2131690502;
            public const int string_smart_connection_normal = 2131690502;
            
            // aapt resource value: 0x7F0F0407
            public const int string_wired_connection = 2131690503;
            public const int string_sound_wave_connection = 2131690503;
            
            // aapt resource value: 0x7F0F0408
            public const int submit_secure_validate = 2131690504;
            public const int string_wired_connection = 2131690504;
            
            // aapt resource value: 0x7F0F0409
            public const int submit_sms_code = 2131690505;
            public const int submit_secure_validate = 2131690505;
            
            // aapt resource value: 0x7F0F040A
            public const int switch_to_handset = 2131690506;
            public const int submit_sms_code = 2131690506;
            
            // aapt resource value: 0x7F0F040B
            public const int switch_to_speaker = 2131690507;
            public const int switch_to_handset = 2131690507;
            
            // aapt resource value: 0x7F0F040C
            public const int system_default_channel = 2131690508;
            public const int switch_to_speaker = 2131690508;
            
            // aapt resource value: 0x7F0F040D
            public const int tab_more = 2131690509;
            public const int system_default_channel = 2131690509;
            
            // aapt resource value: 0x7F0F040E
            public const int talk = 2131690510;
            // aapt resource value: 0x7F0F0411
            public const int talking = 2131690513;
            public const int tab_more = 2131690510;
            
            // aapt resource value: 0x7F0F040F
            public const int talk_open_failed = 2131690511;
            // aapt resource value: 0x7F0F0410
            public const int talk_open_success = 2131690512;
            public const int talk = 2131690511;
            
            // aapt resource value: 0x7F0F0412
            public const int text_day_ago = 2131690514;
            public const int talking = 2131690514;
            // aapt resource value: 0x7F0F0410
            public const int talk_open_failed = 2131690512;
            // aapt resource value: 0x7F0F0411
            public const int talk_open_success = 2131690513;
            
            // aapt resource value: 0x7F0F0413
            public const int text_end_time_hint = 2131690515;
            public const int text_day_ago = 2131690515;
            
            // aapt resource value: 0x7F0F0414
            public const int text_hour_ago = 2131690516;
            public const int text_end_time_hint = 2131690516;
            
            // aapt resource value: 0x7F0F0415
            public const int text_just = 2131690517;
            public const int text_hour_ago = 2131690517;
            
            // aapt resource value: 0x7F0F0416
            public const int text_minute_ago = 2131690518;
            public const int text_just = 2131690518;
            
            // aapt resource value: 0x7F0F0417
            public const int text_month_ago = 2131690519;
            public const int text_minute_ago = 2131690519;
            
            // aapt resource value: 0x7F0F0418
            public const int text_press_to_copy = 2131690520;
            public const int text_month_ago = 2131690520;
            
            // aapt resource value: 0x7F0F0419
            public const int text_seconds_ago = 2131690521;
            public const int text_press_to_copy = 2131690521;
            
            // aapt resource value: 0x7F0F041A
            public const int text_start_time_hint = 2131690522;
            public const int text_seconds_ago = 2131690522;
            
            // aapt resource value: 0x7F0F041B
            public const int text_year_ago = 2131690523;
            public const int text_start_time_hint = 2131690523;
            
            // aapt resource value: 0x7F0F041C
            public const int tip = 2131690524;
            public const int text_year_ago = 2131690524;
            
            // aapt resource value: 0x7F0F041D
            public const int tip_confirm_unlock = 2131690525;
            public const int tip = 2131690525;
            
            // aapt resource value: 0x7F0F041E
            public const int tip_heard_voice = 2131690526;
            public const int tip_confirm_unlock = 2131690526;
            
            // aapt resource value: 0x7F0F041F
            public const int tip_login_out = 2131690527;
            public const int tip_heard_voice = 2131690527;
            
            // aapt resource value: 0x7F0F0420
            public const int tip_of_added_by_yourself_and_online = 2131690528;
            public const int tip_login_out = 2131690528;
            
            // aapt resource value: 0x7F0F0421
            public const int tip_of_bad_net = 2131690529;
            public const int tip_of_added_by_yourself_and_online = 2131690529;
            
            // aapt resource value: 0x7F0F0422
            public const int tip_playback_again = 2131690530;
            public const int tip_of_bad_net = 2131690530;
            
            // aapt resource value: 0x7F0F0423
            public const int tip_specified_device = 2131690531;
            public const int tip_playback_again = 2131690531;
            
            // aapt resource value: 0x7F0F0424
            public const int title_activate_device = 2131690532;
            public const int tip_specified_device = 2131690532;
            
            // aapt resource value: 0x7F0F0425
            public const int title_activate_device_fail = 2131690533;
            public const int title_activate_device = 2131690533;
            
            // aapt resource value: 0x7F0F0426
            public const int title_activity_connect_device_wifi = 2131690534;
            public const int title_activate_device_fail = 2131690534;
            
            // aapt resource value: 0x7F0F0427
            public const int title_activity_ezupgrade_device = 2131690535;
            public const int title_activity_connect_device_wifi = 2131690535;
            
            // aapt resource value: 0x7F0F0428
            public const int today = 2131690536;
            public const int title_activity_ezupgrade_device = 2131690536;
            
            // aapt resource value: 0x7F0F0429
            public const int touch_fingerprint_sensor_hint = 2131690537;
            public const int today = 2131690537;
            
            // aapt resource value: 0x7F0F042A
            public const int touch_to_load = 2131690538;
            public const int touch_fingerprint_sensor_hint = 2131690538;
            
            // aapt resource value: 0x7F0F042B
            public const int try_again = 2131690539;
            public const int touch_to_load = 2131690539;
            
            // aapt resource value: 0x7F0F042C
            public const int ui_call_demo_txt = 2131690540;
            public const int try_again = 2131690540;
            
            // aapt resource value: 0x7F0F042D
            public const int unable_identify_two_dimensional_code_tip = 2131690541;
            public const int ui_call_demo_txt = 2131690541;
            
            // aapt resource value: 0x7F0F042E
            public const int unanswered = 2131690542;
            public const int unable_identify_two_dimensional_code_tip = 2131690542;
            
            // aapt resource value: 0x7F0F042F
            public const int unbind_to_bind = 2131690543;
            public const int unanswered = 2131690543;
            
            // aapt resource value: 0x7F0F0430
            public const int unblanking = 2131690544;
            public const int unbind_to_bind = 2131690544;
            
            // aapt resource value: 0x7F0F0431
            public const int unknow_ssid = 2131690545;
            public const int unblanking = 2131690545;
            
            // aapt resource value: 0x7F0F0432
            public const int unlock_fail = 2131690546;
            public const int unknow_ssid = 2131690546;
            
            // aapt resource value: 0x7F0F0433
            public const int unlock_success = 2131690547;
            public const int unlock_fail = 2131690547;
            
            // aapt resource value: 0x7F0F0434
            public const int unnamed = 2131690548;
            public const int unlock_success = 2131690548;
            
            // aapt resource value: 0x7F0F0435
            public const int update_exit = 2131690549;
            public const int unnamed = 2131690549;
            
            // aapt resource value: 0x7F0F0436
            public const int upgrade = 2131690550;
            public const int update_exit = 2131690550;
            
            // aapt resource value: 0x7F0F0437
            public const int upgrade_fail = 2131690551;
            public const int upgrade = 2131690551;
            
            // aapt resource value: 0x7F0F0438
            public const int upgrade_progress = 2131690552;
            public const int upgrade_fail = 2131690552;
            
            // aapt resource value: 0x7F0F0439
            public const int upgrade_success = 2131690553;
            public const int upgrade_progress = 2131690553;
            
            // aapt resource value: 0x7F0F043A
            public const int upgrade_success_progress = 2131690554;
            public const int upgrade_success = 2131690554;
            
            // aapt resource value: 0x7F0F043B
            public const int user_input_name = 2131690555;
            public const int upgrade_success_progress = 2131690555;
            
            // aapt resource value: 0x7F0F043C
            public const int user_login_title = 2131690556;
            public const int user_input_name = 2131690556;
            
            // aapt resource value: 0x7F0F043D
            public const int user_name_txt = 2131690557;
            public const int user_login_title = 2131690557;
            
            // aapt resource value: 0x7F0F043E
            public const int user_pwd_login_login = 2131690558;
            public const int user_name_txt = 2131690558;
            
            // aapt resource value: 0x7F0F043F
            public const int user_register = 2131690559;
            public const int user_pwd_login_login = 2131690559;
            
            // aapt resource value: 0x7F0F0440
            public const int user_register_btn = 2131690560;
            public const int user_register = 2131690560;
            
            // aapt resource value: 0x7F0F0441
            public const int valid_code_retrieve_valid_num = 2131690561;
            public const int user_register_btn = 2131690561;
            
            // aapt resource value: 0x7F0F0442
            public const int verify_camera_fail_network_exception = 2131690562;
            public const int valid_code_retrieve_valid_num = 2131690562;
            
            // aapt resource value: 0x7F0F0443
            public const int verify_code_error = 2131690563;
            public const int verify_camera_fail_network_exception = 2131690563;
            
            // aapt resource value: 0x7F0F0444
            public const int verify_sms_code_fail = 2131690564;
            public const int verify_code_error = 2131690564;
            
            // aapt resource value: 0x7F0F0445
            public const int verify_sms_code_success = 2131690565;
            public const int verify_sms_code_fail = 2131690565;
            
            // aapt resource value: 0x7F0F0446
            public const int version_newest = 2131690566;
            public const int verify_sms_code_success = 2131690566;
            
            // aapt resource value: 0x7F0F0447
            public const int video_answer = 2131690567;
            public const int version_newest = 2131690567;
            
            // aapt resource value: 0x7F0F0448
            public const int video_box = 2131690568;
            public const int video_answer = 2131690568;
            
            // aapt resource value: 0x7F0F0449
            public const int video_confirm = 2131690569;
            public const int video_box = 2131690569;
            
            // aapt resource value: 0x7F0F044A
            public const int video_device = 2131690570;
            public const int video_confirm = 2131690570;
            
            // aapt resource value: 0x7F0F044B
            public const int video_fail = 2131690571;
            public const int video_device = 2131690571;
            
            // aapt resource value: 0x7F0F044C
            public const int video_hang_up = 2131690572;
            public const int video_fail = 2131690572;
            
            // aapt resource value: 0x7F0F044D
            public const int video_icon = 2131690573;
            public const int video_hang_up = 2131690573;
            
            // aapt resource value: 0x7F0F044E
            public const int video_not_answer = 2131690574;
            public const int video_icon = 2131690574;
            
            // aapt resource value: 0x7F0F044F
            public const int video_screenshot = 2131690575;
            public const int video_not_answer = 2131690575;
            
            // aapt resource value: 0x7F0F0450
            public const int video_square = 2131690576;
            public const int video_screenshot = 2131690576;
            
            // aapt resource value: 0x7F0F0451
            public const int video_success = 2131690577;
            public const int video_square = 2131690577;
            
            // aapt resource value: 0x7F0F0452
            public const int video_talk_call_cancel = 2131690578;
            public const int video_success = 2131690578;
            
            // aapt resource value: 0x7F0F0453
            public const int video_talk_call_is_accepted = 2131690579;
            public const int video_talk_call_cancel = 2131690579;
            
            // aapt resource value: 0x7F0F0454
            public const int video_talk_is_playing = 2131690580;
            public const int video_talk_call_is_accepted = 2131690580;
            
            // aapt resource value: 0x7F0F0455
            public const int video_talk_sdk_toast_hang_up = 2131690581;
            public const int video_talk_is_playing = 2131690581;
            
            // aapt resource value: 0x7F0F0456
            public const int video_talk_sdk_toast_nobody = 2131690582;
            public const int video_talk_sdk_toast_hang_up = 2131690582;
            
            // aapt resource value: 0x7F0F0457
            public const int video_talk_signal_weak = 2131690583;
            public const int video_talk_sdk_toast_nobody = 2131690583;
            
            // aapt resource value: 0x7F0F0458
            public const int video_talk_watch_is_busy = 2131690584;
            public const int video_talk_signal_weak = 2131690584;
            
            // aapt resource value: 0x7F0F0459
            public const int video_talk_watch_temperature_high_hang = 2131690585;
            public const int video_talk_watch_is_busy = 2131690585;
            
            // aapt resource value: 0x7F0F045A
            public const int video_talk_watch_temperature_high_hint = 2131690586;
            public const int video_talk_watch_temperature_high_hang = 2131690586;
            
            // aapt resource value: 0x7F0F045B
            public const int video_talk_watch_temperature_high_reject = 2131690587;
            public const int video_talk_watch_temperature_high_hint = 2131690587;
            
            // aapt resource value: 0x7F0F045C
            public const int video_talk_watch_temperature_high_warn = 2131690588;
            public const int video_talk_watch_temperature_high_reject = 2131690588;
            
            // aapt resource value: 0x7F0F045D
            public const int video_tip = 2131690589;
            public const int video_talk_watch_temperature_high_warn = 2131690589;
            
            // aapt resource value: 0x7F0F045E
            public const int video_unlock = 2131690590;
            public const int video_tip = 2131690590;
            
            // aapt resource value: 0x7F0F045F
            public const int volume = 2131690591;
            public const int video_unlock = 2131690591;
            
            // aapt resource value: 0x7F0F0460
            public const int wait = 2131690592;
            public const int volume = 2131690592;
            
            // aapt resource value: 0x7F0F0461
            public const int web_login_button_txt = 2131690593;
            public const int wait = 2131690593;
            
            // aapt resource value: 0x7F0F0462
            public const int wechat_interconnect = 2131690594;
            public const int web_login_button_txt = 2131690594;
            
            // aapt resource value: 0x7F0F0463
            public const int wifi_connected = 2131690595;
            public const int wechat_interconnect = 2131690595;
            
            // aapt resource value: 0x7F0F0464
            public const int wifi_connection_finish_need_refresh = 2131690596;
            public const int wifi_connected = 2131690596;
            
            // aapt resource value: 0x7F0F0465
            public const int wifi_set = 2131690597;
            public const int wifi_connection_finish_need_refresh = 2131690597;
            
            // aapt resource value: 0x7F0F0466
            public const int wifi_setting = 2131690598;
            public const int wifi_set = 2131690598;
            
            // aapt resource value: 0x7F0F0467
            public const int wired_connection = 2131690599;
            // aapt resource value: 0x7F0F0469
            public const int xlistview_footer_hint_normal = 2131690601;
            public const int wifi_setting = 2131690599;
            
            // aapt resource value: 0x7F0F0468
            public const int xlistview_footer_hint_no_more_device = 2131690600;
            public const int wired_connection = 2131690600;
            
            // aapt resource value: 0x7F0F046A
            public const int xlistview_footer_hint_ready = 2131690602;
            public const int xlistview_footer_hint_normal = 2131690602;
            // aapt resource value: 0x7F0F0469
            public const int xlistview_footer_hint_no_more_device = 2131690601;
            
            // aapt resource value: 0x7F0F046B
            public const int xlistview_footer_no_more = 2131690603;
            public const int xlistview_footer_hint_ready = 2131690603;
            
            // aapt resource value: 0x7F0F046C
            public const int xlistview_footer_no_more_msg = 2131690604;
            public const int xlistview_footer_no_more = 2131690604;
            
            // aapt resource value: 0x7F0F046D
            public const int xlistview_header_hint_loading = 2131690605;
            public const int xlistview_footer_no_more_msg = 2131690605;
            
            // aapt resource value: 0x7F0F046E
            public const int xlistview_header_hint_more = 2131690606;
            public const int xlistview_header_hint_loading = 2131690606;
            
            // aapt resource value: 0x7F0F046F
            public const int xlistview_header_hint_normal = 2131690607;
            public const int xlistview_header_hint_more = 2131690607;
            
            // aapt resource value: 0x7F0F0470
            public const int xlistview_header_hint_ready = 2131690608;
            public const int xlistview_header_hint_normal = 2131690608;
            
            // aapt resource value: 0x7F0F0471
            public const int xlistview_header_last_time = 2131690609;
            public const int xlistview_header_hint_ready = 2131690609;
            
            // aapt resource value: 0x7F0F0472
            public const int zxing_app_name = 2131690610;
            public const int xlistview_header_last_time = 2131690610;
            
            // aapt resource value: 0x7F0F0473
            public const int zxing_button_ok = 2131690611;
            public const int zxing_app_name = 2131690611;
            
            // aapt resource value: 0x7F0F0474
            public const int zxing_msg_camera_framework_bug = 2131690612;
            public const int zxing_button_ok = 2131690612;
            
            // aapt resource value: 0x7F0F0475
            public const int zxing_msg_default_status = 2131690613;
            public const int zxing_msg_camera_framework_bug = 2131690613;
            
            // aapt resource value: 0x7F0F0476
            public const int zxing_scan_tips = 2131690614;
            public const int zxing_msg_default_status = 2131690614;
            // aapt resource value: 0x7F0F0477
            public const int zxing_scan_tips = 2131690615;
            
            static String()
            {
HDL_APP_Project.sln
@@ -25,6 +25,10 @@
        .editorconfig = .editorconfig
    EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NunitTest-Ios", "NunitTest-Ios\NunitTest-Ios.csproj", "{C70A6AA7-2FBA-4A37-9132-AD49BD037899}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NunitTest-Android", "NunitTest-Android\NunitTest-Android.csproj", "{7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}"
EndProject
Global
    GlobalSection(SharedMSBuildProjectFiles) = preSolution
        HDL_ON\HDL_ON.projitems*{09712674-2a38-407b-b1e2-560b2c352f9a}*SharedItemsImports = 4
@@ -138,6 +142,30 @@
        {3A0E9FF9-56B6-4323-9AE6-2B22975E399B}.Release|iPhone.Build.0 = Release|Any CPU
        {3A0E9FF9-56B6-4323-9AE6-2B22975E399B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
        {3A0E9FF9-56B6-4323-9AE6-2B22975E399B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
        {C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Debug|Any CPU.ActiveCfg = Debug|iPhone
        {C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Debug|Any CPU.Build.0 = Debug|iPhone
        {C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Debug|iPhone.ActiveCfg = Debug|iPhone
        {C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Debug|iPhone.Build.0 = Debug|iPhone
        {C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
        {C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
        {C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
        {C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Release|Any CPU.Build.0 = Release|iPhoneSimulator
        {C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Release|iPhone.ActiveCfg = Release|iPhone
        {C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Release|iPhone.Build.0 = Release|iPhone
        {C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
        {C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
        {7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Debug|iPhone.ActiveCfg = Debug|Any CPU
        {7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Debug|iPhone.Build.0 = Debug|Any CPU
        {7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
        {7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
        {7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Release|Any CPU.Build.0 = Release|Any CPU
        {7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Release|iPhone.ActiveCfg = Release|Any CPU
        {7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Release|iPhone.Build.0 = Release|Any CPU
        {7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
        {7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
NunitTest-Android/ApiPostTests.cs
New file
@@ -0,0 +1,47 @@
using System;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using NUnit.Framework;
namespace NunitTestIos
{
    [TestFixture]
    public class ApiPostTests
    {
        private HttpClient client;
        private const string apiUrl = "https://api.example.com/";
        [SetUp]
        public void Setup()
        {
            client = new HttpClient();
            client.BaseAddress = new Uri(apiUrl);
        }
        [Test]
        public async Task TestPostRequest()
        {
            // 准备 POST 数据
            var postData = new { key = "value" };
            var json = JsonConvert.SerializeObject(postData);
            var content = new StringContent(json, Encoding.UTF8, "application/json");
            // 发起 POST 请求
            HttpResponseMessage response = await client.PostAsync("endpoint", content);
            // 验证状态码
            Assert.AreEqual(HttpStatusCode.Created, response.StatusCode);
            // 验证返回的数据或响应内容
            string responseBody = await response.Content.ReadAsStringAsync();
            Assert.IsTrue(!string.IsNullOrEmpty(responseBody));
            // 可以进一步验证返回的数据是否符合预期
        }
    }
}
NunitTest-Android/Assets/AboutAssets.txt
New file
@@ -0,0 +1,19 @@
Any raw assets you want to be deployed with your application can be placed in
this directory (and child directories) and given a Build Action of "AndroidAsset".
These files will be deployed with your package and will be accessible using Android's
AssetManager, like this:
public class ReadAsset : Activity
{
    protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate (bundle);
        InputStream input = Assets.Open ("my_asset.txt");
    }
}
Additionally, some Android functions will automatically load asset files:
Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
NunitTest-Android/MainActivity.cs
New file
@@ -0,0 +1,24 @@
using System.Reflection;
using Android.App;
using Android.OS;
using Xamarin.Android.NUnitLite;
namespace NunitTest_Android
{
    [Activity(Label = "@string/app_name", MainLauncher = true)]
    public class MainActivity : TestSuiteActivity
    {
        protected override void OnCreate(Bundle bundle)
        {
            // tests can be inside the main assembly
            AddTest(Assembly.GetExecutingAssembly());
            // or in any reference assemblies
            // AddTest (typeof (Your.Library.TestClass).Assembly);
            // Once you called base.OnCreate(), you cannot add more assemblies.
            base.OnCreate(bundle);
        }
    }
}
NunitTest-Android/NunitTest-Android.csproj
New file
@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
    <ProjectGuid>{7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}</ProjectGuid>
    <TemplateGuid>{7BB5766D-53A1-4A5D-8618-7602F8FCD9B8}</TemplateGuid>
    <OutputType>Library</OutputType>
    <RootNamespace>NunitTest_Android</RootNamespace>
    <AssemblyName>NunitTest_Android</AssemblyName>
    <Deterministic>True</Deterministic>
    <MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
    <MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
    <AndroidResgenClass>Resource</AndroidResgenClass>
    <AndroidResgenFile>Resources\Resource.designer.cs</AndroidResgenFile>
    <AndroidApplication>True</AndroidApplication>
    <AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
    <IsAppExtension>true</IsAppExtension>
    <TargetFrameworkVersion>v13.0</TargetFrameworkVersion>
    <AndroidEnableSGenConcurrent>true</AndroidEnableSGenConcurrent>
    <AndroidUseAapt2>true</AndroidUseAapt2>
    <AndroidHttpClientHandlerType>Xamarin.Android.Net.AndroidClientHandler</AndroidHttpClientHandlerType>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>True</DebugSymbols>
    <DebugType>portable</DebugType>
    <Optimize>False</Optimize>
    <OutputPath>bin\Debug</OutputPath>
    <DefineConstants>DEBUG;</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <AndroidLinkMode>None</AndroidLinkMode>
    <ConsolePause>False</ConsolePause>
    <EmbedAssembliesIntoApk>False</EmbedAssembliesIntoApk>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugSymbols>True</DebugSymbols>
    <DebugType>portable</DebugType>
    <Optimize>True</Optimize>
    <OutputPath>bin\Release</OutputPath>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <AndroidUseSharedRuntime>False</AndroidUseSharedRuntime>
    <ConsolePause>False</ConsolePause>
    <EmbedAssembliesIntoApk>True</EmbedAssembliesIntoApk>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Xml" />
    <Reference Include="System.Core" />
    <Reference Include="Mono.Android" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="MainActivity.cs" />
    <Compile Include="TestsSample.cs" />
    <Compile Include="Resources\Resource.designer.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="ApiPostTests.cs" />
  </ItemGroup>
  <ItemGroup>
    <None Include="Resources\AboutResources.txt" />
    <None Include="Assets\AboutAssets.txt" />
    <None Include="Properties\AndroidManifest.xml" />
  </ItemGroup>
  <ItemGroup>
    <AndroidResource Include="Resources\mipmap-anydpi-v26\ic_launcher.xml" />
    <AndroidResource Include="Resources\mipmap-anydpi-v26\ic_launcher_round.xml" />
    <AndroidResource Include="Resources\mipmap-hdpi\ic_launcher.png" />
    <AndroidResource Include="Resources\mipmap-hdpi\ic_launcher_foreground.png" />
    <AndroidResource Include="Resources\mipmap-hdpi\ic_launcher_round.png" />
    <AndroidResource Include="Resources\mipmap-mdpi\ic_launcher.png" />
    <AndroidResource Include="Resources\mipmap-mdpi\ic_launcher_foreground.png" />
    <AndroidResource Include="Resources\mipmap-mdpi\ic_launcher_round.png" />
    <AndroidResource Include="Resources\mipmap-xhdpi\ic_launcher.png" />
    <AndroidResource Include="Resources\mipmap-xhdpi\ic_launcher_foreground.png" />
    <AndroidResource Include="Resources\mipmap-xhdpi\ic_launcher_round.png" />
    <AndroidResource Include="Resources\mipmap-xxhdpi\ic_launcher.png" />
    <AndroidResource Include="Resources\mipmap-xxhdpi\ic_launcher_foreground.png" />
    <AndroidResource Include="Resources\mipmap-xxhdpi\ic_launcher_round.png" />
    <AndroidResource Include="Resources\mipmap-xxxhdpi\ic_launcher.png" />
    <AndroidResource Include="Resources\mipmap-xxxhdpi\ic_launcher_foreground.png" />
    <AndroidResource Include="Resources\mipmap-xxxhdpi\ic_launcher_round.png" />
    <AndroidResource Include="Resources\values\colors.xml" />
    <AndroidResource Include="Resources\values\ic_launcher_background.xml" />
    <AndroidResource Include="Resources\values\strings.xml" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Xamarin.Legacy.NUnitLite" Version="0.0.1-alpha" />
    <PackageReference Include="Newtonsoft.Json">
      <Version>13.0.3</Version>
    </PackageReference>
    <PackageReference Include="System.Net.Http">
      <Version>4.3.4</Version>
    </PackageReference>
    <PackageReference Include="NUnit">
      <Version>4.0.1</Version>
    </PackageReference>
  </ItemGroup>
  <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
</Project>
NunitTest-Android/Properties/AndroidManifest.xml
New file
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.NunitTest_Android">
    <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="33" />
    <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true"></application>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
NunitTest-Android/Properties/AssemblyInfo.cs
New file
@@ -0,0 +1,27 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Android.App;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("NunitTest_Android")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("NunitTest_Android")]
[assembly: AssemblyCopyright("Copyright ©  2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version
//      Build Number
//      Revision
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
NunitTest-Android/Resources/AboutResources.txt
New file
@@ -0,0 +1,44 @@
Images, layout descriptions, binary blobs and string dictionaries can be included
in your application as resource files.  Various Android APIs are designed to
operate on the resource IDs instead of dealing with images, strings or binary blobs
directly.
For example, a sample Android app that contains a user interface layout (main.xml),
an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
would keep its resources in the "Resources" directory of the application:
Resources/
    drawable/
        icon.png
    layout/
        main.xml
    values/
        strings.xml
In order to get the build system to recognize Android resources, set the build action to
"AndroidResource".  The native Android APIs do not operate directly with filenames, but
instead operate on resource IDs.  When you compile an Android application that uses resources,
the build system will package the resources for distribution and generate a class called "R"
(this is an Android convention) that contains the tokens for each one of the resources
included. For example, for the above Resources layout, this is what the R class would expose:
public class R {
    public class drawable {
        public const int icon = 0x123;
    }
    public class layout {
        public const int main = 0x456;
    }
    public class strings {
        public const int first_string = 0xabc;
        public const int second_string = 0xbcd;
    }
}
You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main
to reference the layout/main.xml file, or R.strings.first_string to reference the first
string in the dictionary file values/strings.xml.
NunitTest-Android/Resources/Resource.designer.cs
New file
@@ -0,0 +1,234 @@
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.42000
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
[assembly: global::Android.Runtime.ResourceDesignerAttribute("NunitTest_Android.Resource", IsApplication=true)]
namespace NunitTest_Android
{
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "13.2.1.111")]
    public partial class Resource
    {
        static Resource()
        {
            global::Android.Runtime.ResourceIdManager.UpdateIdValues();
        }
        public static void UpdateIdValues()
        {
            global::Xamarin.Android.NUnitLite.Resource.Id.CreditsButton = global::NunitTest_Android.Resource.Id.CreditsButton;
            global::Xamarin.Android.NUnitLite.Resource.Id.OptionHostName = global::NunitTest_Android.Resource.Id.OptionHostName;
            global::Xamarin.Android.NUnitLite.Resource.Id.OptionPort = global::NunitTest_Android.Resource.Id.OptionPort;
            global::Xamarin.Android.NUnitLite.Resource.Id.OptionRemoteServer = global::NunitTest_Android.Resource.Id.OptionRemoteServer;
            global::Xamarin.Android.NUnitLite.Resource.Id.OptionsButton = global::NunitTest_Android.Resource.Id.OptionsButton;
            global::Xamarin.Android.NUnitLite.Resource.Id.ResultFullName = global::NunitTest_Android.Resource.Id.ResultFullName;
            global::Xamarin.Android.NUnitLite.Resource.Id.ResultMessage = global::NunitTest_Android.Resource.Id.ResultMessage;
            global::Xamarin.Android.NUnitLite.Resource.Id.ResultResultState = global::NunitTest_Android.Resource.Id.ResultResultState;
            global::Xamarin.Android.NUnitLite.Resource.Id.ResultRunSingleMethodTest = global::NunitTest_Android.Resource.Id.ResultRunSingleMethodTest;
            global::Xamarin.Android.NUnitLite.Resource.Id.ResultsFailed = global::NunitTest_Android.Resource.Id.ResultsFailed;
            global::Xamarin.Android.NUnitLite.Resource.Id.ResultsId = global::NunitTest_Android.Resource.Id.ResultsId;
            global::Xamarin.Android.NUnitLite.Resource.Id.ResultsIgnored = global::NunitTest_Android.Resource.Id.ResultsIgnored;
            global::Xamarin.Android.NUnitLite.Resource.Id.ResultsInconclusive = global::NunitTest_Android.Resource.Id.ResultsInconclusive;
            global::Xamarin.Android.NUnitLite.Resource.Id.ResultsMessage = global::NunitTest_Android.Resource.Id.ResultsMessage;
            global::Xamarin.Android.NUnitLite.Resource.Id.ResultsPassed = global::NunitTest_Android.Resource.Id.ResultsPassed;
            global::Xamarin.Android.NUnitLite.Resource.Id.ResultsResult = global::NunitTest_Android.Resource.Id.ResultsResult;
            global::Xamarin.Android.NUnitLite.Resource.Id.ResultStackTrace = global::NunitTest_Android.Resource.Id.ResultStackTrace;
            global::Xamarin.Android.NUnitLite.Resource.Id.RunEverythingButton = global::NunitTest_Android.Resource.Id.RunEverythingButton;
            global::Xamarin.Android.NUnitLite.Resource.Id.RunTestsButton = global::NunitTest_Android.Resource.Id.RunTestsButton;
            global::Xamarin.Android.NUnitLite.Resource.Id.TestSuiteListView = global::NunitTest_Android.Resource.Id.TestSuiteListView;
            global::Xamarin.Android.NUnitLite.Resource.Layout.options = global::NunitTest_Android.Resource.Layout.options;
            global::Xamarin.Android.NUnitLite.Resource.Layout.results = global::NunitTest_Android.Resource.Layout.results;
            global::Xamarin.Android.NUnitLite.Resource.Layout.Runner = global::NunitTest_Android.Resource.Layout.Runner;
            global::Xamarin.Android.NUnitLite.Resource.Layout.test_result = global::NunitTest_Android.Resource.Layout.test_result;
            global::Xamarin.Android.NUnitLite.Resource.Layout.test_suite = global::NunitTest_Android.Resource.Layout.test_suite;
        }
        public partial class Attribute
        {
            static Attribute()
            {
                global::Android.Runtime.ResourceIdManager.UpdateIdValues();
            }
            private Attribute()
            {
            }
        }
        public partial class Color
        {
            // aapt resource value: 0x7F010000
            public const int colorAccent = 2130771968;
            // aapt resource value: 0x7F010001
            public const int colorPrimary = 2130771969;
            // aapt resource value: 0x7F010002
            public const int colorPrimaryDark = 2130771970;
            // aapt resource value: 0x7F010003
            public const int ic_launcher_background = 2130771971;
            static Color()
            {
                global::Android.Runtime.ResourceIdManager.UpdateIdValues();
            }
            private Color()
            {
            }
        }
        public partial class Id
        {
            // aapt resource value: 0x7F020000
            public const int CreditsButton = 2130837504;
            // aapt resource value: 0x7F020001
            public const int OptionHostName = 2130837505;
            // aapt resource value: 0x7F020002
            public const int OptionPort = 2130837506;
            // aapt resource value: 0x7F020003
            public const int OptionRemoteServer = 2130837507;
            // aapt resource value: 0x7F020004
            public const int OptionsButton = 2130837508;
            // aapt resource value: 0x7F020005
            public const int ResultFullName = 2130837509;
            // aapt resource value: 0x7F020006
            public const int ResultMessage = 2130837510;
            // aapt resource value: 0x7F020007
            public const int ResultResultState = 2130837511;
            // aapt resource value: 0x7F020008
            public const int ResultRunSingleMethodTest = 2130837512;
            // aapt resource value: 0x7F02000A
            public const int ResultsFailed = 2130837514;
            // aapt resource value: 0x7F02000B
            public const int ResultsId = 2130837515;
            // aapt resource value: 0x7F02000C
            public const int ResultsIgnored = 2130837516;
            // aapt resource value: 0x7F02000D
            public const int ResultsInconclusive = 2130837517;
            // aapt resource value: 0x7F02000E
            public const int ResultsMessage = 2130837518;
            // aapt resource value: 0x7F02000F
            public const int ResultsPassed = 2130837519;
            // aapt resource value: 0x7F020010
            public const int ResultsResult = 2130837520;
            // aapt resource value: 0x7F020009
            public const int ResultStackTrace = 2130837513;
            // aapt resource value: 0x7F020011
            public const int RunEverythingButton = 2130837521;
            // aapt resource value: 0x7F020012
            public const int RunTestsButton = 2130837522;
            // aapt resource value: 0x7F020013
            public const int TestSuiteListView = 2130837523;
            static Id()
            {
                global::Android.Runtime.ResourceIdManager.UpdateIdValues();
            }
            private Id()
            {
            }
        }
        public partial class Layout
        {
            // aapt resource value: 0x7F030000
            public const int options = 2130903040;
            // aapt resource value: 0x7F030001
            public const int results = 2130903041;
            // aapt resource value: 0x7F030002
            public const int Runner = 2130903042;
            // aapt resource value: 0x7F030003
            public const int test_result = 2130903043;
            // aapt resource value: 0x7F030004
            public const int test_suite = 2130903044;
            static Layout()
            {
                global::Android.Runtime.ResourceIdManager.UpdateIdValues();
            }
            private Layout()
            {
            }
        }
        public partial class Mipmap
        {
            // aapt resource value: 0x7F040000
            public const int ic_launcher = 2130968576;
            // aapt resource value: 0x7F040001
            public const int ic_launcher_foreground = 2130968577;
            // aapt resource value: 0x7F040002
            public const int ic_launcher_round = 2130968578;
            static Mipmap()
            {
                global::Android.Runtime.ResourceIdManager.UpdateIdValues();
            }
            private Mipmap()
            {
            }
        }
        public partial class String
        {
            // aapt resource value: 0x7F050000
            public const int app_name = 2131034112;
            static String()
            {
                global::Android.Runtime.ResourceIdManager.UpdateIdValues();
            }
            private String()
            {
            }
        }
    }
}
#pragma warning restore 1591
NunitTest-Android/Resources/mipmap-anydpi-v26/ic_launcher.xml
New file
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@color/ic_launcher_background"/>
    <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>
NunitTest-Android/Resources/mipmap-anydpi-v26/ic_launcher_round.xml
New file
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@color/ic_launcher_background"/>
    <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>
NunitTest-Android/Resources/mipmap-hdpi/ic_launcher.png
NunitTest-Android/Resources/mipmap-hdpi/ic_launcher_foreground.png
NunitTest-Android/Resources/mipmap-hdpi/ic_launcher_round.png
NunitTest-Android/Resources/mipmap-mdpi/ic_launcher.png
NunitTest-Android/Resources/mipmap-mdpi/ic_launcher_foreground.png
NunitTest-Android/Resources/mipmap-mdpi/ic_launcher_round.png
NunitTest-Android/Resources/mipmap-xhdpi/ic_launcher.png
NunitTest-Android/Resources/mipmap-xhdpi/ic_launcher_foreground.png
NunitTest-Android/Resources/mipmap-xhdpi/ic_launcher_round.png
NunitTest-Android/Resources/mipmap-xxhdpi/ic_launcher.png
NunitTest-Android/Resources/mipmap-xxhdpi/ic_launcher_foreground.png
NunitTest-Android/Resources/mipmap-xxhdpi/ic_launcher_round.png
NunitTest-Android/Resources/mipmap-xxxhdpi/ic_launcher.png
NunitTest-Android/Resources/mipmap-xxxhdpi/ic_launcher_foreground.png
NunitTest-Android/Resources/mipmap-xxxhdpi/ic_launcher_round.png
NunitTest-Android/Resources/values/colors.xml
New file
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#2c3e50</color>
    <color name="colorPrimaryDark">#1B3147</color>
    <color name="colorAccent">#3498db</color>
</resources>
NunitTest-Android/Resources/values/ic_launcher_background.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="ic_launcher_background">#2C3E50</color>
</resources>
NunitTest-Android/Resources/values/strings.xml
New file
@@ -0,0 +1,4 @@
<resources>
    <string name="app_name">NunitTest_Android</string>
</resources>
NunitTest-Android/TestsSample.cs
New file
@@ -0,0 +1,44 @@
using System;
using NUnit.Framework;
namespace NunitTest_Android
{
    [TestFixture]
    public class TestsSample
    {
        [SetUp]
        public void Setup() { }
        [TearDown]
        public void Tear() { }
        [Test]
        public void Pass()
        {
            Console.WriteLine("test1");
            Assert.True(true);
        }
        [Test]
        public void Fail()
        {
            Assert.False(true);
        }
        [Test]
        [Ignore("another time")]
        public void Ignore()
        {
            Assert.True(false);
        }
        [Test]
        public void Inconclusive()
        {
            Assert.Inconclusive("Inconclusive");
        }
    }
}
NunitTest-Ios/ApiPostTests.cs
New file
@@ -0,0 +1,47 @@
using System;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using NUnit.Framework;
namespace NunitTestIos
{
    [TestFixture]
    public class ApiPostTests
    {
        private HttpClient client;
        private const string apiUrl = "https://api.example.com/";
        [SetUp]
        public void Setup()
        {
            client = new HttpClient();
            client.BaseAddress = new Uri(apiUrl);
        }
        [Test]
        public async Task TestPostRequest()
        {
            // 准备 POST 数据
            var postData = new { key = "value" };
            var json = JsonConvert.SerializeObject(postData);
            var content = new StringContent(json, Encoding.UTF8, "application/json");
            // 发起 POST 请求
            HttpResponseMessage response = await client.PostAsync("endpoint", content);
            // 验证状态码
            Assert.AreEqual(HttpStatusCode.Created, response.StatusCode);
            // 验证返回的数据或响应内容
            string responseBody = await response.Content.ReadAsStringAsync();
            Assert.IsTrue(!string.IsNullOrEmpty(responseBody));
            // 可以进一步验证返回的数据是否符合预期
        }
    }
}
NunitTest-Ios/Entitlements.plist
New file
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
</dict>
</plist>
NunitTest-Ios/Info.plist
New file
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"[]>
<plist version="1.0">
    <dict>
        <key>CFBundleName</key>
        <string>NunitTest-Ios</string>
        <key>CFBundleIdentifier</key>
        <string>com.hdl.onpronuint.NunitTest-Ios</string>
        <key>CFBundleShortVersionString</key>
        <string>1.0</string>
        <key>CFBundleVersion</key>
        <string>1.0</string>
        <key>LSRequiresIPhoneOS</key>
        <true />
        <key>MinimumOSVersion</key>
        <string>16.4</string>
        <key>UIDeviceFamily</key>
        <array>
            <integer>1</integer>
            <integer>2</integer>
        </array>
        <key>UISupportedInterfaceOrientations</key>
        <array>
            <string>UIInterfaceOrientationPortrait</string>
            <string>UIInterfaceOrientationLandscapeLeft</string>
            <string>UIInterfaceOrientationLandscapeRight</string>
        </array>
        <key>UILaunchStoryboardName</key>
        <string>LaunchScreen</string>
        <key>NSAppTransportSecurity</key>
        <dict>
            <key>NSAllowsArbitraryLoads</key>
            <true />
        </dict>
    </dict>
</plist>
NunitTest-Ios/LaunchScreen.storyboard
New file
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9532" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" initialViewController="01J-lp-oVM">
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9530"/>
    </dependencies>
    <scenes>
        <!--View Controller-->
        <scene sceneID="EHf-IW-A2E">
            <objects>
                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/>
                        <viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
                    </view>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="53" y="375"/>
        </scene>
    </scenes>
</document>
NunitTest-Ios/Main.cs
New file
@@ -0,0 +1,20 @@
using System;
using System.Linq;
using System.Collections.Generic;
using Foundation;
using UIKit;
namespace NunitTestIos
{
    public class Application
    {
        // This is the main entry point of the application.
        static void Main (string[] args)
        {
            // if you want to use a different Application Delegate class from "UnitTestAppDelegate"
            // you can specify it here.
            UIApplication.Main (args, null, "UnitTestAppDelegate");
        }
    }
}
NunitTest-Ios/NunitTest-Ios.csproj
New file
@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="..\packages\NUnit.4.0.1\build\NUnit.props" Condition="Exists('..\packages\NUnit.4.0.1\build\NUnit.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
    <ProjectGuid>{C70A6AA7-2FBA-4A37-9132-AD49BD037899}</ProjectGuid>
    <ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
    <OutputType>Exe</OutputType>
    <RootNamespace>NunitTestIos</RootNamespace>
    <AssemblyName>NunitTest-Ios</AssemblyName>
    <IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\iPhoneSimulator\Debug</OutputPath>
    <DefineConstants>DEBUG;</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <CreatePackage>false</CreatePackage>
    <CodesignKey>iPhone Developer</CodesignKey>
    <MtouchDebug>true</MtouchDebug>
    <MtouchNoSymbolStrip>true</MtouchNoSymbolStrip>
    <MtouchFastDev>true</MtouchFastDev>
    <IOSDebuggerPort>46534</IOSDebuggerPort>
    <MtouchLink>None</MtouchLink>
    <MtouchArch>x86_64</MtouchArch>
    <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
    <DeviceSpecificBuild>false</DeviceSpecificBuild>
    <_BundlerDebug>false</_BundlerDebug>
    <MtouchVerbosity></MtouchVerbosity>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\iPhone\Release</OutputPath>
    <DefineConstants></DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <CreatePackage>false</CreatePackage>
    <CodesignKey>iPhone Developer</CodesignKey>
    <MtouchUseLlvm>true</MtouchUseLlvm>
    <MtouchFloat32>true</MtouchFloat32>
    <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
    <MtouchArch>ARM64</MtouchArch>
    <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
    <MtouchVerbosity></MtouchVerbosity>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\iPhoneSimulator\Release</OutputPath>
    <DefineConstants></DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <CreatePackage>false</CreatePackage>
    <CodesignKey>iPhone Developer</CodesignKey>
    <MtouchNoSymbolStrip>true</MtouchNoSymbolStrip>
    <MtouchLink>None</MtouchLink>
    <MtouchArch>x86_64</MtouchArch>
    <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
    <MtouchVerbosity></MtouchVerbosity>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\iPhone\Debug</OutputPath>
    <DefineConstants>DEBUG;</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <CreatePackage>false</CreatePackage>
    <CodesignKey>iPhone Developer</CodesignKey>
    <DeviceSpecificBuild>true</DeviceSpecificBuild>
    <MtouchDebug>true</MtouchDebug>
    <MtouchNoSymbolStrip>true</MtouchNoSymbolStrip>
    <MtouchFastDev>true</MtouchFastDev>
    <MtouchFloat32>true</MtouchFloat32>
    <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
    <IOSDebuggerPort>46534</IOSDebuggerPort>
    <MtouchArch>ARM64</MtouchArch>
    <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
    <_BundlerDebug>false</_BundlerDebug>
    <MtouchVerbosity></MtouchVerbosity>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Xml" />
    <Reference Include="System.Core" />
    <Reference Include="Xamarin.iOS" />
    <Reference Include="MonoTouch.NUnitLite" />
    <Reference Include="System.Net.Http" />
    <Reference Include="Newtonsoft.Json">
      <HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\netstandard2.0\Newtonsoft.Json.dll</HintPath>
    </Reference>
  </ItemGroup>
  <ItemGroup>
    <InterfaceDefinition Include="LaunchScreen.storyboard" />
  </ItemGroup>
  <ItemGroup>
    <None Include="Info.plist" />
    <None Include="Entitlements.plist" />
    <None Include="packages.config" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Main.cs" />
    <Compile Include="UnitTestAppDelegate.cs" />
    <Compile Include="ApiPostTests.cs" />
  </ItemGroup>
  <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
</Project>
NunitTest-Ios/UnitTestAppDelegate.cs
New file
@@ -0,0 +1,46 @@
using System;
using System.Linq;
using System.Collections.Generic;
using Foundation;
using UIKit;
using MonoTouch.NUnit.UI;
namespace NunitTestIos
{
    // The UIApplicationDelegate for the application. This class is responsible for launching the
    // User Interface of the application, as well as listening (and optionally responding) to
    // application events from iOS.
    [Register ("UnitTestAppDelegate")]
    public partial class UnitTestAppDelegate : UIApplicationDelegate
    {
        // class-level declarations
        UIWindow window;
        TouchRunner runner;
        //
        // This method is invoked when the application has loaded and is ready to run. In this
        // method you should instantiate the window, load the UI into it and then make the window
        // visible.
        //
        // You have 17 seconds to return from this method, or iOS will terminate your application.
        //
        public override bool FinishedLaunching (UIApplication app, NSDictionary options)
        {
            // create a new window instance based on the screen size
            window = new UIWindow (UIScreen.MainScreen.Bounds);
            runner = new TouchRunner (window);
            // register every tests included in the main application/assembly
            runner.Add (System.Reflection.Assembly.GetExecutingAssembly ());
            window.RootViewController = new UINavigationController (runner.GetViewController ());
            // make the window visible
            window.MakeKeyAndVisible ();
            return true;
        }
    }
}
NunitTest-Ios/packages.config
New file
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Newtonsoft.Json" version="13.0.3" targetFramework="xamarinios10" />
  <package id="NUnit" version="4.0.1" targetFramework="xamarinios10" />
  <package id="System.Net.Http" version="4.3.4" targetFramework="xamarinios10" />
</packages>