Fermer

avril 11, 2024

Explorer le manifeste Android dans .NET MAUI

Explorer le manifeste Android dans .NET MAUI


Découvrez ce qui est stocké dans le fichier manifeste Android afin de pouvoir définir des configurations spécifiques à la plate-forme dans votre application .NEW MAUI.

Le développement .NET MAUI nous permet de créer des applications pour plusieurs plates-formes, notamment iOS, MacCatalyst, Android, WPF et Tizen. Bien que .NET MAUI propose une base de code partagée, des configurations spécifiques sont nécessaires pour chaque plateforme afin d’exécuter correctement l’application. Lors de la création d’un projet .NET MAUI, les fichiers contenant des configurations spécifiques à la plate-forme sont générés automatiquement et se trouvent dans le dossier Plateformes.

Dans cet article, nous examinerons le fichier AndroidManifest.xml, où les informations de configuration Android sont stockées, et explorerons certains des éléments les plus fréquemment utilisés.

Pour faciliter la compréhension, nous décomposerons le sujet en différents points, en commençant par :

Qu’est-ce que AndroidManifest.xml ?

Le fichier AndroidManifest.xml est crucial pour les applications Android, qu’elles soient natives ou multiplateformes. Il définit les caractéristiques de configuration de l’application avant son exécution, permettant de configurer diverses fonctionnalités telles que :

  • Autorisations : Votre application doit spécifier toutes les autorisations dont elle a besoin. Cela signifie que lorsqu’une application demande l’accès à votre position, elle doit d’abord demander l’autorisation. Vous pouvez configurer ceux-ci dans le fichier AndroidManifest. ✍️ L’autorisation INTERNET est l’une des plus fréquemment demandées.
  • Informations générales sur l’application : C’est ici que toutes les données de base de l’application sont configurées normalement pour être affichées à l’utilisateur. Ces données incluent, entre autres, le nom de l’application, l’icône, le thème et le nom du package.
  • Compatibilité et restrictions : Cette partie vous permet de définir les exigences minimales et maximales pour les versions acceptées, garantissant ainsi la compatibilité des applications.

Où pouvez-vous exactement trouver le fichier AndroidManifest.xml ?

.NET MAUI sur Android génère un fichier AndroidManifest.xml dans le cadre de son processus de génération, qui est stocké dans le dossier Platform/Android. (Vous pouvez le localiser dans l’image ci-dessous.)

Cependant, un manifeste supplémentaire est créé en fusionnant le XML du fichier Platforms\Android\AndroidManifest.xml avec tout XML généré à partir de fonctionnalités spécifiques de vos classes. Le fichier AndroidManifest.xml résultant est ensuite enregistré dans le dossier obj, spécifiquement dans obj\Debug\net7.0-android\AndroidManifest.xml pour les versions de débogage sur .NET 7.

  • Dossier Plateforme/Android : Accédez à votre projet ➡ Plateformes ➡ Android ➡ Double-cliquez AndroidManifest.xml

Étape 1 : Accédez à votre projet - Étape 3 : Cliquez sur Afficher les plates-formes, Étape 3 : Ouvrez le fichier 4. Vous verrez le fichier AndroidManifest.xml.

✍️ Vous pouvez également l’ouvrir en cliquant avec le bouton droit sur le manifeste, en sélectionnant « Ouvrir avec », puis en choisissant un éditeur de code source.

  • AndroidManifesrt.xml généré automatiquement : Accédez à votre projet ➡ obj ➡ Debug ➡ net7.0-android ➡ et ouvrez votre AndroidManifest.xml.

Générer le manifeste

Dans les applications .NET MAUI, le MainActivity la classe dérive de Activity via le MauiAppCompatActivity classe et a le ActivityAttribute appliqué. Lors de la création de l’application, le système recherche toute classe provenant de l’activité et possédant le ActivityAttribute attribut.

Le fichier AndroidManifest.xml résultant est généré à partir de ces classes non abstraites qui dérivent de Activity et qui ont le ActivityAttribute appliqué.

Le MainActivity.cs de votre projet doit avoir le ActivityAttribute (comme ça: [Activity]) et la base d’activité devrait ressembler à ce qui suit :

using Android.App; 
namespace MyMauiApp;
    
[Activity]
public class MainActivity : Activity 
{
     
}

Cet exemple ajoute le fragment XML suivant au fichier manifeste :

<activity android:name="crc641df78fb20bf67739.MainActivity" />

Explorons maintenant les configurations qui contiennent ce fichier.

Nom de l’activité

La valeur par défaut du nom de l’activité est générée automatiquement. Il est dérivé du contrôle de redondance cyclique 64 bits du nom qualifié d’assembly associé au type exporté. Ce type d’affectation vous permet de donner le même nom à deux assemblys distincts, évitant ainsi toute erreur de packaging.

Mais puis-je modifier la valeur du nom de l’activité ? 🤔

Si nécessairevous pouvez spécifier le nom de l’activité à l’aide du Name propriété. Il est toutefois conseillé de changer le nom uniquement pour des raisons de compatibilité ascendantecar cela peut avoir un impact sur la vitesse de recherche de type au moment de l’exécution.

Un scénario possible dans lequel vous devrez peut-être procéder ainsi consiste à fournir un nom Java lisible par l’homme pour votre activité. Cela peut être utile si une autre application Android doit ouvrir la vôtre ou si vous disposez d’un script pour tester le temps de démarrage de votre application.

Son implémentation dans le code ressemblerait à ceci :

using Android.App;
namespace MyMauiApp;
  
[Activity (Name="companyname.foodapp.activity")]
public class MainActivity : Activity
{
    
}

Cet exemple ajoute le fragment XML suivant au fichier manifeste :

<activity android:name="companyname.MainActivity.activity" />

Barre de titre de l’application

La barre d’applications est une barre supérieure de l’interface qui peut afficher des informations et des actions relatives à l’écran actuel. Dans ce cas, il affichera spécifiquement le titre. Pour y parvenir, utilisez le Label propriété de la manière suivante :

using Android.App;
namespace MyMauiApp;
    
 [Activity (Label="Food Ap")]
public class MainActivity : Activity
{
    
}

Cet exemple ajoute le fragment XML suivant au fichier manifeste :

<activity android:label="My Maui App" android:name="crc64bdb9c38958c20c7c.MainActivity" />

Lancer à partir du sélecteur d’application

Dans le cas où votre application .NET MAUI a plus d’une activité, il est important de préciser quelle activité doit être lancée depuis le lanceur d’applications. Vous pouvez le faire en définissant le MainLauncher propriété à True.

using Android.App;
namespace MyMauiApp;
    
 [Activity (Label="Food App", MainLauncher = true)] 
public class MainActivity : Activity 
{
    
}

Cet exemple ajoute le fragment XML suivant au fichier manifeste :

<activity android:label="Food App" android:name="crc64bdb9c38958c20c7c.MainActivity"> 
  <intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.LAUNCHER" /> 
  </intent-filter> 
</activity>

Autorisations

La protection de la vie privée de l’utilisateur est la tâche principale des autorisations, car elles garantissent qu’une application peut accéder uniquement aux informations sur l’appareil et aux ressources nécessaires à son fonctionnement. Par défaut, le AndroidManifest dans le dossier Platforms/Android configure les autorisations pour L’INTERNET et ACCESS_NETWORK_STATE. Même si vous supprimez l’autorisation INTERNET de votre manifeste, l’autorisation sera toujours présente dans le fichier manifeste généré pour les versions de débogage.

Pour ajouter les autorisations nécessaires, utilisez la ligne fournie ci-dessous. Répétez cette ligne pour chaque autorisation dont vous avez besoin.

<uses-permission android:name="android.permission.INTERNET" />

Élément d’application

Les intentions et les IntentFilterAttribute sont utilisés pour décrire les capacités de notre application. Le IntentFilterAttribute Le constructeur spécifie les actions appropriées pour votre activité, tandis que le Categories la propriété spécifie les catégories appropriées.

Au moins une activité doit être fournie, c’est pourquoi les activités sont incluses dans le constructeur. Plusieurs [IntentFilter]s peuvent être fournis, et chaque instance donne lieu à un <intent-filter/> élément au sein du <activity/>.

using Android.App;
using Android.Content;
    
namespace MyMauiApp;
[Activity(Label = "My Maui App", MainLauncher = true)]
[IntentFilter(new[] {Intent.ActionView},
    
Categories = new[] {Intent.CategorySampleCode, "my.custom.category"})]
    
public class MyActivity : Activity
{
  
}

Cet exemple produit le fragment XML suivant :

<activity android:label="My Maui App" 
android:name="crc64bdb9c38958c20c7c.MainActivity"> 
  <intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.LAUNCHER" /> 
  </intent-filter> 
  <intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.SAMPLE_CODE" /> 
    <category android:name="my.custom.category" /> 
  </intent-filter> 
</activity>

Conclusion

Vous avez appris beaucoup d’informations sur AndroidManifest.xml. Désormais, lorsque vous verrez ce fichier, vous aurez plus de clarté sur ses éléments. J’espère que cet article vous a été utile ! Je vous encourage à commencer à le mettre en œuvre dans votre vie quotidienne ! 💚💕

À la prochaine! 💁‍♀️

Les références

Cet article était basé sur documentation officielle.




Source link