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
반응형
'프로그래밍 > Xamarin(자마린)' 카테고리의 다른 글
[Xamarin, c#, UWP] UWP, How to Disable Caret Browsing in code(key F7), Disable Cursor Browsing in uwp app (0) | 2022.10.11 |
---|---|
[Xamarin] KeyDownEvent fires twice on Android (0) | 2022.08.10 |
[UWP] 풀스크린 모드로 변경 및 풀스크린 모드(FullScreen & Mode) (0) | 2022.06.07 |
[Xamarin] How to open another app. (0) | 2021.12.22 |
댓글