프로그래밍/Xamarin(자마린)
[Xamarin] How to open another app with data
그래도동
2021. 12. 22. 11:13
728x90
반응형
Xamarin] How to open another app.
[Xamarin] How to open another app.
How to open another app in Xamarin. Use PackageManager in ~.Android project [assembly: Xamarin.Forms.Dependency(typeof(AppLinkService))] namespace MyApp.Droid.Service { public class AppLinkService :..
something-is-code.tistory.com
[assembly: Xamarin.Forms.Dependency(typeof(AppLinkService))]
namespace MyApp.Droid.Service
{
public class AppLinkService : IServiceAppLink
{
public Task<bool> LaunchApp(string packageName)
{
bool result = false;
try
{
PackageManager pm = Android.App.Application.Context.PackageManager;
var activity = Xamarin.Essentials.Platform.CurrentActivity as MainActivity;
if (activity == null) return null;
if (IsAppInstalled(packageName))
{
Intent intent = pm.GetLaunchIntentForPackage(packageName);
if (intent != null)
{
intent.SetFlags(ActivityFlags.ClearTop | ActivityFlags.ClearTask | ActivityFlags.NewTask);
intent.PutExtra("key", "data");
activity.StartActivity(intent);
}
}
else
{
// 다운로드?
}
}
catch (ActivityNotFoundException)
{
result = false;
}
return Task.FromResult(result);
}
private bool IsAppInstalled(string packageName)
{
PackageManager pm = Android.App.Application.Context.PackageManager;
bool installed = false;
try
{
pm.GetPackageInfo(packageName, PackageInfoFlags.Activities);
installed = true;
}
catch (PackageManager.NameNotFoundException e)
{
installed = false;
}
return installed;
}
}
}
Add
intent.PutExtra("key", "data");
in OnCreate() in MainActivity.cs
if (Intent.HasExtra("bgf"))
{
var data = Intent.GetStringExtra("key");
if (data != null)
{
Log.WriteLine(LogPriority.Debug, "Recv Data", data);
}
}
GetData (put in key)
Intent.GetStringExtra("key");
728x90
반응형