.NET Android アプリと .NET iOS アプリでコードを移行 Xamarin.Essentials する
Xamarin.Essentials はほぼすべての Xamarin アプリの基本的なライブラリであり、その機能は .NET マルチプラットフォーム アプリ UI (.NET MAUI) の一部になりました。
次の手順では、.NET Android または .NET iOS アプリで"ネイティブ デバイス機能" (旧Xamarin.Essentials称: .NET iOS) を使用.NET MAUIするプロセスの概要を示します。
- Xamarin.Essentials.NET Android または .NET iOS アプリから NuGet パッケージを削除します。
- プロジェクト ファイルでビルド
$(UseMauiEssentials)
プロパティをtrue
設定します。 詳細については、「プロジェクト ファイルを変更する」を参照してください。 - メソッドを呼び出して、"essentials" 機能を初期化します
Platform.Init
。 詳細については、「プラットフォームの初期化」を参照してください。 - 必要に応じて、追加のセットアップを実行します。 詳細については、「追加セットアップの実行」を参照してください。
- 必要な機能に using ディレクティブを追加します。 詳細については、「using ディレクティブを追加する」を参照してください。
重要
名前空間への参照を削除する以外に、アプリで使用Xamarin.Essentialsする操作は必要ありません。これは、既にXamarin.Essentials
機能がXamarin.Essentials含まれているため.NET MAUI.NET MAUIです。
プロジェクト ファイルを変更する
.NET Android または .NET iOS アプリでネイティブ デバイス機能を使用 .NET MAUIするには、プロジェクト ファイルを変更し、ビルド プロパティを $(UseMauiEssentials)
true
.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-android</TargetFramework>
...
<UseMauiEssentials>true</UseMauiEssentials>
</PropertyGroup>
</Project>
プラットフォームを初期化する
起動されたメソッドActivityでは、名前空間にあるMicrosoft.Maui.ApplicationModelメソッドをPlatform.Init
メソッドからOnCreate
呼び出す必要があります。
using Android.Content.PM;
using Android.Runtime;
using Microsoft.Maui.ApplicationModel;
namespace MyAndroidApp;
[Activity(Label = "@string/app_name", MainLauncher = true)]
public class MainActivity : Activity
{
protected override async void OnCreate(Bundle? savedInstanceState)
{
base.OnCreate(savedInstanceState);
Platform.Init(this, savedInstanceState);
// ...
}
}
このメソッドには Platform.Init
、 Application 引数、または Activity 引数と引数が必要です Bundle 。
追加のセットアップを実行する
静的 Platform
クラスには、プラットフォーム固有のヘルパーが含まれています。
メンバー | 目的 |
---|---|
ActivityStateChanged |
アクティビティの状態が変化したときに発生するイベント。 |
AppContext |
現在のアプリ コンテキストを Context 表すオブジェクトを取得するプロパティ。 |
CurrentActivity |
現在のアクティビティを表す現在 Activity のオブジェクトを取得するプロパティ。 |
Intent |
文字列を含む ActionAppAction 静的クラス。これは、アプリ アクションによって使用される Intent 識別子です。 |
OnNewIntent |
Intentアプリ アクションを呼び出すときに、アクティビティのオーバーライドされたメソッドから an を渡します。 |
OnResume |
Activityアプリ アクションの呼び出しの一環として再開されたときにActivity、アクティビティのオーバーライドされたメソッドから a を渡します。 |
OnRequestPermissionsResult |
内部アクセス許可要求を処理するために、アクティビティのオーバーライドされたメソッドからアクセス許可要求の結果を渡します。 |
WaitForActivityAsync |
作成されるのを Activity 待つか、アクティブになります。 |
現在 Context
のアプリまたは Activity
実行中のアプリにアクセスするには:
var context = Platform.AppContext;
// Current Activity or null if not initialized or not started.
var activity = Platform.CurrentActivity;
必要に応じて、アプリが完全に開始されていない状況 Activity がある場合は、メソッドを WaitForActivityAsync
呼び出します。
var activity = await Platform.WaitForActivityAsync();
ランタイムアクセス許可要求を処理するには、すべてのActivityメソッドをOnRequestPermissionsResult
オーバーライドし、そこからメソッドをPlatform.OnRequestPermissionsResult
呼び出します。
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
{
Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
現在 Activityの情報を取得するだけでなく、ライフサイクル イベントに登録することもできます。
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
Platform.Init(this, bundle);
Platform.ActivityStateChanged += Platform_ActivityStateChanged;
}
protected override void OnDestroy()
{
base.OnDestroy();
Platform.ActivityStateChanged -= Platform_ActivityStateChanged;
}
void Platform_ActivityStateChanged(object sender, ActivityStateChangedEventArgs e) =>
Toast.MakeText(this, e.State.ToString(), ToastLength.Short).Show();
アクティビティの状態は次のとおりです。
- Created
- Resumed
- Paused
- Destroyed
- SaveInstanceState
- Started
- Stopped
using ディレクティブを追加する
.NET iOS および .NET Android の暗黙的な global using
ディレクティブには、ネイティブ デバイス機能の .NET MAUI名前空間は含まれません。 したがって、名前空間のディレクティブは、 using
必要な機能を Xamarin.Essentials
含む名前空間のディレクティブに置き換える using
必要があります。
名前空間 | 目的 |
---|---|
Microsoft.Maui.ApplicationModel | アプリ アクション、アクセス許可、バージョン追跡などのアプリケーション モデル機能。 |
Microsoft.Maui.ApplicationModel.Communication | 連絡先、電子メール、ネットワークなどの通信機能。 |
Microsoft.Maui.Devices | バッテリー、センサー、懐中電灯、触覚フィードバックなどのデバイス機能。 |
Microsoft.Maui.Media | メディアの選択、テキスト読み上げなどのメディア機能。 |
Microsoft.Maui.ApplicationModel.DataTransfer | クリップボードやファイル共有などの共有機能。 |
Microsoft.Maui.Storage | ファイルの選択、セキュリティで保護されたストレージなどのストレージ機能。 |
各名前空間の機能の詳細については、「プラットフォーム統合」を参照してください。
.NET MAUI
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示