dhis2_android_configure_camera
Configure camera settings for the DHIS2 Android app to enable photo capture, video recording, barcode scanning, and document scanning with customizable resolution, quality, and format options.
Instructions
Set up camera and media capture capabilities for DHIS2 Android app
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cameraFeatures | Yes | Camera features to enable | |
| imageSettings | No | ||
| videoSettings | No | ||
| barcodeTypes | No | Supported barcode formats | |
| permissions | No | Required permissions for media capture |
Implementation Reference
- src/android-generators.ts:1514-1571 (handler)The core handler function that executes the tool by generating complete Android camera configuration including permissions, CameraX/VideoCapture setup, barcode scanning with ML Kit, usage examples, and testing code.export function generateCameraConfiguration(args: any): string { const { cameraFeatures, imageSettings, videoSettings, barcodeTypes, permissions } = args; return `# DHIS2 Android Camera Configuration ## Features: ${cameraFeatures.join(', ')} ${generateCameraPermissions(permissions)} ${generateCameraImplementation(cameraFeatures, imageSettings, videoSettings, barcodeTypes)} ${cameraFeatures.includes('barcode_scanning') ? generateBarcodeScanning(barcodeTypes) : ''} ## Usage Examples \`\`\`kotlin class DataCaptureActivity : AppCompatActivity() { private val cameraManager by lazy { DHIS2CameraManager(this) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding.capturePhotoButton.setOnClickListener { capturePhoto() } ${cameraFeatures.includes('barcode_scanning') ? ` binding.scanBarcodeButton.setOnClickListener { scanBarcode() }` : ''} } private fun capturePhoto() { cameraManager.capturePhoto { result -> when (result) { is CameraResult.Success -> { // Handle captured photo handleCapturedPhoto(result.imageUri) } is CameraResult.Error -> { showError(result.message) } } } } ${cameraFeatures.includes('barcode_scanning') ? ` private fun scanBarcode() { cameraManager.scanBarcode { barcode -> // Handle scanned barcode updateDataElementWithBarcode(barcode) } }` : ''} } \`\`\` `; }
- src/index.ts:1297-1307 (registration)Registers and dispatches calls to the tool handler in the MCP server's CallToolRequestSchema handler.case 'dhis2_android_configure_camera': const cameraArgs = args as any; const cameraConfig = generateCameraConfiguration(cameraArgs); return { content: [ { type: 'text', text: cameraConfig, }, ], };
- src/permission-system.ts:155-168 (helper)Maps the tool to required user permission 'canUseMobileFeatures' in the permission system used for tool filtering.['dhis2_android_init_project', 'canUseMobileFeatures'], ['dhis2_android_configure_gradle', 'canUseMobileFeatures'], ['dhis2_android_setup_sync', 'canConfigureMobile'], ['dhis2_android_configure_storage', 'canConfigureMobile'], ['dhis2_android_setup_location_services', 'canUseMobileFeatures'], ['dhis2_android_configure_camera', 'canUseMobileFeatures'], ['dhis2_android_setup_authentication', 'canConfigureMobile'], ['dhis2_android_generate_data_models', 'canUseMobileFeatures'], ['dhis2_android_setup_testing', 'canUseMobileFeatures'], ['dhis2_android_configure_ui_patterns', 'canUseMobileFeatures'], ['dhis2_android_setup_offline_analytics', 'canUseMobileFeatures'], ['dhis2_android_configure_notifications', 'canUseMobileFeatures'], ['dhis2_android_performance_optimization', 'canUseMobileFeatures'],