コード例 #1
0
 // Overridden from Service
 public override void OnCreate()
 {
     base.OnCreate();
     portal = new IONPortalService();
     Java.Lang.Thread.DefaultUncaughtExceptionHandler = this;
     AppDomain.CurrentDomain.UnhandledException      += (sender, e) => {
         Log.E(this, "Uncaught Exception", e.ExceptionObject as Exception);
     };
     Android.Runtime.AndroidEnvironment.UnhandledExceptionRaiser += (sender, e) => {
         Log.E(this, "Unhandled exception", e.Exception);
         e.Handled = true;
     };
 }
コード例 #2
0
        /// <summary>
        /// Sends a support email to appion.
        /// </summary>
        /// <returns>The app suppory email.</returns>
        public static void SendAppSupportEmail(this IONPortalService service, IION ion, Activity activity)
        {
            var dump = ion.CreateApplicationDump();

            var i = new Intent(Intent.ActionSend);

            try {
                var file = ion.fileManager.CreateTemporaryFile("HostDetails.json");
                var s    = file.OpenForWriting();
                var w    = new StreamWriter(s);
                var json = Newtonsoft.Json.JsonConvert.SerializeObject(dump, Formatting.Indented);
                w.Write(json);
                w.Dispose();
                s.Dispose();
                i.PutExtra(Intent.ExtraStream, Android.Net.Uri.FromFile(new Java.IO.File(file.fullPath)));
            } catch (Exception e) {
                Log.E(THIS, "Failed to create the application dump", e);
            }

            i.SetFlags(ActivityFlags.NewTask | ActivityFlags.NoHistory);
            i.PutExtra(Intent.ExtraEmail, new string[] { AppionConstants.EMAIL_SUPPORT });
            i.SetType(AppionConstants.MIME_RFC822);

            try {
                var chooser = Intent.CreateChooser(i, activity.GetString(Resource.String.preferences_send_feedback));
                chooser.SetFlags(ActivityFlags.NewTask | ActivityFlags.NoHistory);
                activity.StartActivity(chooser);
            } catch (Exception e) {
                Log.E(THIS, "Failed to start e-mail activity for support message", e);
                var adb = new IONAlertDialog(activity, Resource.String.preferences_send_feedback);
                adb.SetMessage(Resource.String.preferences_send_feedback_failed);
                adb.SetNegativeButton(Resource.String.cancel, (obj, args) => {
                    var dialog = obj as Dialog;
                    dialog.Dismiss();
                });
                adb.SetPositiveButton(Resource.String.ok, (obj, args) => {
                    var dialog = obj as Dialog;
                    dialog.Dismiss();

                    try {
                        activity.StartActivity(new Intent(Intent.ActionView, Android.Net.Uri.Parse("market://details?id=" + activity.PackageName)));
                    } catch (Exception ee) {
                        Log.E(THIS, "Failed to start activity for maket with package name.", ee);
                        activity.StartActivity(new Intent(Intent.ActionView, Android.Net.Uri.Parse("http://play.google.com/store/apps/details?id=" + activity.PackageName)));
                    }
                });

                adb.Show();
            }
        }
コード例 #3
0
 public LocalIosION(IONPortalService portal) : base(portal)
 {
 }
コード例 #4
0
 public RemoteIosION(IONPortalService portal) : base(portal)
 {
 }
コード例 #5
0
 /// <summary>
 /// Creates a new BaseION.
 /// </summary>
 /// <param name="name">Name.</param>
 public IosION(IONPortalService portal)
 {
     this.portal = portal;
 }