103 lines
2.7 KiB
C#
103 lines
2.7 KiB
C#
|
|
using Android.App;
|
|
using Android.Gms.Common;
|
|
using Android.OS;
|
|
using Android.Util;
|
|
using Android.Widget;
|
|
using Firebase.Iid;
|
|
using Plugin.Badge;
|
|
using System.Net;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace FCMTest
|
|
{
|
|
[Activity(Label = "FCMTest", MainLauncher = true, Icon = "@drawable/icon")]
|
|
public class MainActivity : Activity
|
|
{
|
|
const string TAG = "FCMTest MainActivity";
|
|
|
|
TextView msgText;
|
|
|
|
protected override void OnCreate(Bundle bundle)
|
|
{
|
|
Log.Debug(TAG, "google app id: " + Resource.String.google_app_id);
|
|
Log.Debug(TAG, "google api key: " + Resource.String.google_api_key);
|
|
if(Intent.Extras != null)
|
|
{
|
|
foreach(var key in Intent.Extras.KeySet())
|
|
{
|
|
var value = Intent.Extras.GetString(key);
|
|
Log.Debug(TAG, "Key: {0} Value: {1}", key, value);
|
|
}
|
|
|
|
//if(Intent.Extras.ContainsKey("badge") == true)
|
|
//{
|
|
// var badgeCnt = Intent.Extras.Get("badge");
|
|
// int iBadgeCnt;
|
|
// int.TryParse(badgeCnt.ToString(), out iBadgeCnt);
|
|
// CrossBadge.Current.SetBadge(iBadgeCnt);
|
|
//}
|
|
}
|
|
|
|
base.OnCreate(bundle);
|
|
SetContentView (Resource.Layout.Main);
|
|
msgText = FindViewById<TextView>(Resource.Id.msgText);
|
|
|
|
IsPlayServicesAvailable();
|
|
|
|
var refreshTokenButton = FindViewById<Button>(Resource.Id.refreshTokenButton);
|
|
refreshTokenButton.Click += delegate {
|
|
ConfigureFireBase();
|
|
};
|
|
|
|
var logTokenButton = FindViewById<Button>(Resource.Id.logTokenButton);
|
|
logTokenButton.Click += delegate {
|
|
Log.Debug(TAG, "InstanceID token: " + FirebaseInstanceId.Instance.Token);
|
|
};
|
|
}
|
|
|
|
private void ConfigureFireBase()
|
|
{
|
|
#if DEBUG
|
|
Task.Run(() => {
|
|
var instanceId = FirebaseInstanceId.Instance;
|
|
instanceId.DeleteInstanceId();
|
|
Log.Debug(TAG, "{0} {1}", instanceId?.Token?.ToString(), instanceId.GetToken(GetString(Resource.String.gcm_defaultSenderId), Firebase.Messaging.FirebaseMessaging.InstanceIdScope));
|
|
});
|
|
|
|
// For debug mode only - will accept the HTTPS certificate of Test/Dev server, as the HTTPS certificate is invalid /not trusted
|
|
ServicePointManager.ServerCertificateValidationCallback += (o, certificate, chain, errors) => true;
|
|
#endif
|
|
}
|
|
|
|
protected override void OnResume()
|
|
{
|
|
base.OnResume();
|
|
|
|
IsPlayServicesAvailable();
|
|
}
|
|
|
|
public bool IsPlayServicesAvailable()
|
|
{
|
|
int resultCode = GoogleApiAvailability.Instance.IsGooglePlayServicesAvailable(this);
|
|
if(resultCode != ConnectionResult.Success)
|
|
{
|
|
if(GoogleApiAvailability.Instance.IsUserResolvableError(resultCode))
|
|
msgText.Text = GoogleApiAvailability.Instance.GetErrorString(resultCode);
|
|
else
|
|
{
|
|
msgText.Text = "This device is not supported";
|
|
Finish();
|
|
}
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
msgText.Text = "Google Play Services is available.";
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|