- sistema/rede: a placa vira "carinha" na rede (avahi), http://carinha.local na porta 80 (nftables redireciona para a 8100, sem tocar no 192.168.4.1 do portal Carinha-Config) e anúncio "_carinha._tcp" na 8100; - app 0.9.1: quando o endereço salvo não responde, procura o anúncio na rede (NsdManager), testa o endereço achado e passa a usar e guardar. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
59 lines
2.7 KiB
XML
59 lines
2.7 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
package="br.carinha.rosto"
|
|
android:versionCode="13"
|
|
android:versionName="0.9.1">
|
|
|
|
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="34" />
|
|
|
|
<!-- precisa de rede para falar com o servidor da carinha (troca de rosto) -->
|
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
|
<!-- só o nível do sinal do Wi-Fi, para o painel (sem localização nem nome da rede) -->
|
|
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
|
<!-- escutar o ambiente: reage a barulho (surpreso) e a silencio (dormir) -->
|
|
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
|
<!-- camera: pagina de visualizacao e, depois, seguir o movimento -->
|
|
<uses-permission android:name="android.permission.CAMERA" />
|
|
<uses-feature android:name="android.hardware.camera" android:required="false" />
|
|
|
|
<application
|
|
android:label="@string/app_name"
|
|
android:icon="@drawable/icone"
|
|
android:allowBackup="false"
|
|
android:extractNativeLibs="true"
|
|
android:hardwareAccelerated="true"
|
|
android:usesCleartextTraffic="true">
|
|
|
|
<activity
|
|
android:name=".MainActivity"
|
|
android:exported="true"
|
|
android:launchMode="singleTask"
|
|
android:screenOrientation="landscape"
|
|
android:configChanges="orientation|screenSize|keyboardHidden|uiMode|smallestScreenSize"
|
|
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
</intent-filter>
|
|
<!-- no modo quiosque a carinha é a tela inicial do aparelho -->
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.HOME" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<!-- dono do aparelho (modo quiosque): adb shell dpm set-device-owner br.carinha.rosto/.Admin -->
|
|
<receiver
|
|
android:name=".Admin"
|
|
android:exported="true"
|
|
android:permission="android.permission.BIND_DEVICE_ADMIN">
|
|
<meta-data android:name="android.app.device_admin" android:resource="@xml/admin" />
|
|
<intent-filter>
|
|
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
|
|
</intent-filter>
|
|
</receiver>
|
|
</application>
|
|
</manifest>
|