feat: 添加 USB 摄像头连接功能
- 新增 Android USB 摄像头 APP (MJPEG 服务器) - 电脑端支持 ADB 端口转发连接 - 修复 .gitignore 忽略 Android 文件 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
1<?xml version="1.0" encoding="utf-8"?>
|
||||
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
3 package="com.usbwebcam"
|
||||
4 android:versionCode="1"
|
||||
5 android:versionName="1.0" >
|
||||
6
|
||||
7 <uses-sdk
|
||||
8 android:minSdkVersion="24"
|
||||
9 android:targetSdkVersion="34" />
|
||||
10
|
||||
11 <uses-feature android:name="android.hardware.camera.any" />
|
||||
11-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:5:5-64
|
||||
11-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:5:19-61
|
||||
12
|
||||
13 <uses-permission android:name="android.permission.CAMERA" />
|
||||
13-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:6:5-65
|
||||
13-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:6:22-62
|
||||
14 <uses-permission android:name="android.permission.INTERNET" />
|
||||
14-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:7:5-67
|
||||
14-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:7:22-64
|
||||
15 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
15-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:8:5-79
|
||||
15-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:8:22-76
|
||||
16
|
||||
17 <permission
|
||||
17-->[androidx.core:core:1.12.0] C:\Users\yuanjian\.gradle\caches\9.2.1\transforms\f816649ce4c661525cb38e8f74354319\workspace\transformed\core-1.12.0\AndroidManifest.xml:22:5-24:47
|
||||
18 android:name="com.usbwebcam.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"
|
||||
18-->[androidx.core:core:1.12.0] C:\Users\yuanjian\.gradle\caches\9.2.1\transforms\f816649ce4c661525cb38e8f74354319\workspace\transformed\core-1.12.0\AndroidManifest.xml:23:9-81
|
||||
19 android:protectionLevel="signature" />
|
||||
19-->[androidx.core:core:1.12.0] C:\Users\yuanjian\.gradle\caches\9.2.1\transforms\f816649ce4c661525cb38e8f74354319\workspace\transformed\core-1.12.0\AndroidManifest.xml:24:9-44
|
||||
20
|
||||
21 <uses-permission android:name="com.usbwebcam.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION" />
|
||||
21-->[androidx.core:core:1.12.0] C:\Users\yuanjian\.gradle\caches\9.2.1\transforms\f816649ce4c661525cb38e8f74354319\workspace\transformed\core-1.12.0\AndroidManifest.xml:26:5-97
|
||||
21-->[androidx.core:core:1.12.0] C:\Users\yuanjian\.gradle\caches\9.2.1\transforms\f816649ce4c661525cb38e8f74354319\workspace\transformed\core-1.12.0\AndroidManifest.xml:26:22-94
|
||||
22
|
||||
23 <application
|
||||
23-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:10:5-25:19
|
||||
24 android:allowBackup="true"
|
||||
24-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:11:9-35
|
||||
25 android:appComponentFactory="androidx.core.app.CoreComponentFactory"
|
||||
25-->[androidx.core:core:1.12.0] C:\Users\yuanjian\.gradle\caches\9.2.1\transforms\f816649ce4c661525cb38e8f74354319\workspace\transformed\core-1.12.0\AndroidManifest.xml:28:18-86
|
||||
26 android:debuggable="true"
|
||||
27 android:extractNativeLibs="false"
|
||||
28 android:label="USB摄像头"
|
||||
28-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:12:9-31
|
||||
29 android:testOnly="true"
|
||||
30 android:theme="@style/Theme.AppCompat.NoActionBar" >
|
||||
30-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:13:9-59
|
||||
31 <activity
|
||||
31-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:15:9-24:20
|
||||
32 android:name="com.usbwebcam.MainActivity"
|
||||
32-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:16:13-41
|
||||
33 android:exported="true"
|
||||
33-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:17:13-36
|
||||
34 android:keepScreenOn="true"
|
||||
34-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:19:13-40
|
||||
35 android:screenOrientation="landscape" >
|
||||
35-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:18:13-50
|
||||
36 <intent-filter>
|
||||
36-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:20:13-23:29
|
||||
37 <action android:name="android.intent.action.MAIN" />
|
||||
37-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:21:17-69
|
||||
37-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:21:25-66
|
||||
38
|
||||
39 <category android:name="android.intent.category.LAUNCHER" />
|
||||
39-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:22:17-77
|
||||
39-->D:\code\post-ocr\android-app\app\src\main\AndroidManifest.xml:22:27-74
|
||||
40 </intent-filter>
|
||||
41 </activity>
|
||||
42
|
||||
43 <provider
|
||||
43-->[androidx.emoji2:emoji2:1.2.0] C:\Users\yuanjian\.gradle\caches\9.2.1\transforms\1216682855f5510bed95f4067697479b\workspace\transformed\jetified-emoji2-1.2.0\AndroidManifest.xml:24:9-32:20
|
||||
44 android:name="androidx.startup.InitializationProvider"
|
||||
44-->[androidx.emoji2:emoji2:1.2.0] C:\Users\yuanjian\.gradle\caches\9.2.1\transforms\1216682855f5510bed95f4067697479b\workspace\transformed\jetified-emoji2-1.2.0\AndroidManifest.xml:25:13-67
|
||||
45 android:authorities="com.usbwebcam.androidx-startup"
|
||||
45-->[androidx.emoji2:emoji2:1.2.0] C:\Users\yuanjian\.gradle\caches\9.2.1\transforms\1216682855f5510bed95f4067697479b\workspace\transformed\jetified-emoji2-1.2.0\AndroidManifest.xml:26:13-68
|
||||
46 android:exported="false" >
|
||||
46-->[androidx.emoji2:emoji2:1.2.0] C:\Users\yuanjian\.gradle\caches\9.2.1\transforms\1216682855f5510bed95f4067697479b\workspace\transformed\jetified-emoji2-1.2.0\AndroidManifest.xml:27:13-37
|
||||
47 <meta-data
|
||||
47-->[androidx.emoji2:emoji2:1.2.0] C:\Users\yuanjian\.gradle\caches\9.2.1\transforms\1216682855f5510bed95f4067697479b\workspace\transformed\jetified-emoji2-1.2.0\AndroidManifest.xml:29:13-31:52
|
||||
48 android:name="androidx.emoji2.text.EmojiCompatInitializer"
|
||||
48-->[androidx.emoji2:emoji2:1.2.0] C:\Users\yuanjian\.gradle\caches\9.2.1\transforms\1216682855f5510bed95f4067697479b\workspace\transformed\jetified-emoji2-1.2.0\AndroidManifest.xml:30:17-75
|
||||
49 android:value="androidx.startup" />
|
||||
49-->[androidx.emoji2:emoji2:1.2.0] C:\Users\yuanjian\.gradle\caches\9.2.1\transforms\1216682855f5510bed95f4067697479b\workspace\transformed\jetified-emoji2-1.2.0\AndroidManifest.xml:31:17-49
|
||||
50 <meta-data
|
||||
50-->[androidx.lifecycle:lifecycle-process:2.4.1] C:\Users\yuanjian\.gradle\caches\9.2.1\transforms\267daa7394ed2025de47a9ccaee77d63\workspace\transformed\jetified-lifecycle-process-2.4.1\AndroidManifest.xml:31:13-33:52
|
||||
51 android:name="androidx.lifecycle.ProcessLifecycleInitializer"
|
||||
51-->[androidx.lifecycle:lifecycle-process:2.4.1] C:\Users\yuanjian\.gradle\caches\9.2.1\transforms\267daa7394ed2025de47a9ccaee77d63\workspace\transformed\jetified-lifecycle-process-2.4.1\AndroidManifest.xml:32:17-78
|
||||
52 android:value="androidx.startup" />
|
||||
52-->[androidx.lifecycle:lifecycle-process:2.4.1] C:\Users\yuanjian\.gradle\caches\9.2.1\transforms\267daa7394ed2025de47a9ccaee77d63\workspace\transformed\jetified-lifecycle-process-2.4.1\AndroidManifest.xml:33:17-49
|
||||
53 </provider>
|
||||
54 </application>
|
||||
55
|
||||
56</manifest>
|
||||
@@ -0,0 +1,34 @@
|
||||
1<?xml version="1.0" encoding="utf-8"?>
|
||||
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
3 package="com.usbwebcam.test" >
|
||||
4
|
||||
5 <uses-sdk
|
||||
5-->D:\code\post-ocr\android-app\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest2431176030697632976.xml:5:5-74
|
||||
6 android:minSdkVersion="24"
|
||||
6-->D:\code\post-ocr\android-app\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest2431176030697632976.xml:5:15-41
|
||||
7 android:targetSdkVersion="34" />
|
||||
7-->D:\code\post-ocr\android-app\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest2431176030697632976.xml:5:42-71
|
||||
8
|
||||
9 <instrumentation
|
||||
9-->D:\code\post-ocr\android-app\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest2431176030697632976.xml:11:5-15:63
|
||||
10 android:name="android.test.InstrumentationTestRunner"
|
||||
10-->D:\code\post-ocr\android-app\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest2431176030697632976.xml:11:22-75
|
||||
11 android:functionalTest="false"
|
||||
11-->D:\code\post-ocr\android-app\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest2431176030697632976.xml:14:22-52
|
||||
12 android:handleProfiling="false"
|
||||
12-->D:\code\post-ocr\android-app\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest2431176030697632976.xml:13:22-53
|
||||
13 android:label="Tests for com.usbwebcam"
|
||||
13-->D:\code\post-ocr\android-app\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest2431176030697632976.xml:15:22-61
|
||||
14 android:targetPackage="com.usbwebcam" />
|
||||
14-->D:\code\post-ocr\android-app\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest2431176030697632976.xml:12:22-59
|
||||
15
|
||||
16 <application
|
||||
16-->D:\code\post-ocr\android-app\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest2431176030697632976.xml:7:5-9:19
|
||||
17 android:debuggable="true"
|
||||
18 android:extractNativeLibs="false" >
|
||||
19 <uses-library android:name="android.test.runner" />
|
||||
19-->D:\code\post-ocr\android-app\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest2431176030697632976.xml:8:9-60
|
||||
19-->D:\code\post-ocr\android-app\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest2431176030697632976.xml:8:23-57
|
||||
20 </application>
|
||||
21
|
||||
22</manifest>
|
||||
Reference in New Issue
Block a user