dhis2_android_configure_camera
Configure camera and media capture settings for the DHIS2 Android app. Enable features like 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 |
|---|---|---|---|
| barcodeTypes | No | Supported barcode formats | |
| cameraFeatures | Yes | Camera features to enable | |
| imageSettings | No | ||
| permissions | No | Required permissions for media capture | |
| videoSettings | No |
Implementation Reference
- src/android-generators.ts:1514-1571 (handler)The main handler function that generates comprehensive Android camera configuration for DHIS2 apps, including permissions, implementation code, barcode scanning, and usage examples.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)Tool registration and execution handler in the main MCP server request dispatcher. Calls the generateCameraConfiguration function from android-generators.ts.case 'dhis2_android_configure_camera': const cameraArgs = args as any; const cameraConfig = generateCameraConfiguration(cameraArgs); return { content: [ { type: 'text', text: cameraConfig, }, ], };
- src/permission-system.ts:154-168 (registration)Permission registration in TOOL_PERMISSIONS map, requiring 'canUseMobileFeatures' permission for this Android camera configuration tool.// Android SDK Tools ['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'],