差分

ナビゲーションに移動 検索に移動

Xamarin.AndroidのIntentで外部アプリを起動する

3,342 バイト追加, 2018年9月28日 (金) 02:20
ページの作成:「 PackageManager.GetLaunchIntentForPackageメソッドで 何も考えずインテントを発行するだけでいい完璧な状態のインテントが取得できる...」


PackageManager.GetLaunchIntentForPackageメソッドで
何も考えずインテントを発行するだけでいい完璧な状態のインテントが取得できる。
アプリがインストールされていない場合はnullが返ってくる。

== 関連項目 ==
この例では、
* アプリがあれば起動
* アプリがない場合はGoogle Playアプリで該当アプリのページを開く
* Google Playアプリがない場合はウェブブラウザで該当アプリのページを開く

<source>
using Android.App;
using Android.Widget;
using Android.OS;

[Activity(Label = "launch1", MainLauncher = true, Icon = "@mipmap/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);

// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);

// Get our button from the layout resource,
// and attach an event to it
Button button = FindViewById<Button>(Resource.Id.myButton);

button.Click += (sender, e) => {

// パッケージ名はGoogle PlayのURLのidパラメーター
// https://play.google.com/store/apps/details?id=<<この部分>>
var packageName = "org.monobook.launch2";

// アプリを探す
var launchIntent = PackageManager.GetLaunchIntentForPackage(packageName);
if (launchIntent != null)
{// アプリあり
// アプリ起動
StartActivity(launchIntent);
}
else
{// アプリなし
try
{
// Google Playを開く
var marketIntent = new Android.Content.Intent(
Android.Content.Intent.ActionView,
Android.Net.Uri.Parse("market://details?id=" + packageName));

// 新しいページで開く
marketIntent.AddFlags(Android.Content.ActivityFlags.NewTask);

//
StartActivity(marketIntent);
}
catch (Android.Content.ActivityNotFoundException)
{// Google Playがない端末の場合

// ブラウザで開く
// ブラウザがない端末は見たことがない
System.Diagnostics.Debug.WriteLine("launch browser");
var browseIntent = new Android.Content.Intent(
Android.Content.Intent.ActionView,
Android.Net.Uri.Parse("http://play.google.com/store/apps/details?id=" + packageName));

// 新しいページで開く
browseIntent.AddFlags(Android.Content.ActivityFlags.NewTask);

//
StartActivity(browseIntent);
}
}
};
}
}
</source>

== 関連項目 ==
* [[Xamarin.Androidでアプリを完全に終了させる]]

[[category: Xamarin.Android]]
匿名利用者

案内メニュー