【Flutter】android_intent_plusでインテントを利用する

Flutter

android_intent_plusとは

android_intent_plusは、FlutterアプリケーションからAndroidプラットフォームで任意のインテントを起動するためのプラグインです。
アクション、カテゴリ、データ、および追加の引数を指定してインテントを起動できます。ただし、このプラグインはiOSでは使用できず、iOSで呼び出された場合、アプリがクラッシュします。

android_intent_plus | Flutter package
Flutter plugin for launching Android Intents. Not supported on iOS.

使い方

パッケージのインストール

dependencies:
  android_intent_plus: ^5.0.2

基本的な使用方法

以下は、基本的な使い方の例です。この例では、Google Playストアの特定のアプリのページを開くインテントを起動します。

import 'package:flutter/material.dart';
import 'package:android_intent_plus/android_intent.dart';
import 'package:platform/platform.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Android Intent Plus Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: _launchIntent,
            child: Text('Open Google Play'),
          ),
        ),
      ),
    );
  }

  void _launchIntent() async {
    if (LocalPlatform().isAndroid) {
      final intent = AndroidIntent(
        action: 'action_view',
        data: 'https://play.google.com/store/apps/details?id=com.google.android.apps.myapp',
        arguments: {'authAccount': 'currentUserEmail@example.com'},
      );
      await intent.launch();
    } else {
      print('This feature is only supported on Android.');
    }
  }
}

パラメータの詳細

action

  • インテントのアクションを指定します。例えば、action_viewandroid.os.Intent.ACTION_VIEWに対応します。
  • 標準のAndroidアクションを使用する場合は、プラグインでサポートを追加し、アクション定数を使用することを推奨します。

data

  • インテントのデータURIを指定します。例えば、特定のアプリのパッケージ名を指定してアプリの詳細ページを開くことができます。

arguments

  • インテントに追加の引数を渡すために使用します。引数はAndroidのBundleインスタンスに変換されます。

よく使われるアクションの例

以下は、よく使われるアクションの例です。

  • action_view: android.os.Intent.ACTION_VIEW
  • action_location_source_settings: android.settings.LOCATION_SOURCE_SETTINGS
  • action_application_details_settings: android.settings.APPLICATION_DETAILS_SETTINGS

アプリの設定画面を開く例

if (LocalPlatform().isAndroid) {
  final intent = AndroidIntent(
    action: 'action_application_details_settings',
    data: 'package:com.example.app', // ここを自分のアプリケーションIDに置き換えます
  );
  await intent.launch();
}

Android 11のパッケージ可視性

Android 11では、新しいパッケージ可視性の権限が導入されました。canResolveActivity()メソッドを使用する場合、AndroidManifest.xmlに特定のパッケージ名を指定する必要があります。

詳細については、以下のリンクを参照してください。

注意事項

  • このプラグインはiOSではサポートされていません。iOSで同様の機能が必要な場合は、url_launcherプラグインを使用してディープリンクを作成してください。

Buy me a coffee!

Flutterアプリ開発
シェアする
sogaをフォローする
タイトルとURLをコピーしました