Example #1
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Main);
            var button = FindViewById<Button>(Resource.Id.MyButton);

            button.Click += delegate
            {
                PackageManager pm = this.PackageManager;
                bool permission = (Permission.Granted == pm.CheckPermission("android.permission.CAMERA", this.PackageName));
                if (permission)
                {
                    Toast.MakeText(this, "有这个权限", ToastLength.Long).Show();
                }
                else
                {
                    Toast.MakeText(this, "木有这个权限", ToastLength.Long).Show();
                }

                string dirPath = System.IO.Path.Combine(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures).AbsolutePath, "GreatGateApp");
                if (!System.IO.Directory.Exists(dirPath))
                    System.IO.Directory.CreateDirectory(dirPath);
                var _tmepCameraPath = System.IO.Path.Combine(dirPath, DateTime.UtcNow.ToString("yyyyMMddHHmmssffff") + ".png");
                Intent i = new Intent(MediaStore.ActionImageCapture);
                i.PutExtra(Android.Provider.MediaStore.ExtraOutput, Android.Net.Uri.FromFile(new Java.IO.File(_tmepCameraPath)));
                if (i.ResolveActivity(this.PackageManager) != null)
                {
                    TaskCompletionSource<string> _onTakePictureBack = new TaskCompletionSource<string>();
                    this.StartActivityForResult(i, requestImageCapture);
                }
            };
        }
        public override bool OnOptionsItemSelected(IMenuItem item)
        {
            if (_drawerToggle.OnOptionsItemSelected(item))
                return true;

            switch (item.ItemId)
            {
                case Resource.Id.action_websearch:
                    {
                        var intent = new Intent(Intent.ActionWebSearch);
                        intent.PutExtra(SearchManager.Query, ActionBar.Title);

                        if ((intent.ResolveActivity(PackageManager)) != null)
                            StartActivity(intent);
                        else
                            Toast.MakeText(this, Resource.String.app_not_available, ToastLength.Long).Show();
                        return true;
                    }
                case Resource.Id.action_slidingpane:
                    {
                        var intent = new Intent(this, typeof(SlidingPaneLayoutActivity));
                        intent.AddFlags(ActivityFlags.ClearTop);
                        StartActivity(intent);
                        return true;
                    }
                default:
                    return base.OnOptionsItemSelected(item);
            }
        }
 public bool CanOpenUrl(Uri uri)
 {
     var pm = Forms.Context.ApplicationContext.PackageManager;
     var intent = new Intent(Intent.ActionView, Android.Net.Uri.Parse(uri.AbsoluteUri));
     if (intent.ResolveActivity(pm) != null)
     {
         return true;
     }
     return false;
 }
Example #4
0
        /// <summary>
        /// Override default OnCreate
        /// </summary>
        /// <param name="bundle"></param>
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            SetContentView(Resource.Layout.Main);

            Button browseButton = FindViewById<Button>(Resource.Id.ButtonBrowse);

            //When "Browse" button clicked, fire an intent to select image
            browseButton.Click += delegate
            {
                Intent imageIntent = new Intent();
                imageIntent.SetType(FileType_Image);
                imageIntent.SetAction(Intent.ActionGetContent);
                StartActivityForResult(
                    Intent.CreateChooser(imageIntent, PromptText_SelectImage), PICK_IMAGE);
            };

            Button takePictureButton = FindViewById<Button>(Resource.Id.ButtonTakePicture);

            //When "Take a picture" button clicked, fire an intent to take picture
            takePictureButton.Click += delegate
            {
                Intent takePictureIntent = new Intent(MediaStore.ActionImageCapture);
                if (takePictureIntent.ResolveActivity(PackageManager) != null)
                {
                    // Create the File where the photo should go
                    Java.IO.File photoFile = null;
                    try
                    {
                        photoFile = createImageFile();
                    }
                    catch (Java.IO.IOException)
                    {
                        //TODO: Error handling
                    }  
                    // Continue only if the File was successfully created
                    if (photoFile != null)
                    {
                        takePictureIntent.PutExtra(MediaStore.ExtraOutput, 
                            Android.Net.Uri.FromFile(photoFile));

                        //Delete this temp file, only keey its Uri information
                        photoFile.Delete();

                        TempFileUri = Android.Net.Uri.FromFile(photoFile);
                        StartActivityForResult(takePictureIntent, TAKE_PICTURE);
                    }
                }
            };
                    
        }
Example #5
0
		public void StartRouting(string name, Position pos) 
		{
			// TODO: Conversion from lat/lon to string should be on all devices with point "." instead of ","
			string uri = String.Format("google.navigation:q={0},{1}({2})", pos.Latitude.ToString().Replace(",", "."), pos.Longitude.ToString().Replace(",", "."), name);

			Intent intent = new Intent(Intent.ActionView, global::Android.Net.Uri.Parse("google.navigation:q=0,0"));

			// Do we have a navigation app?
			if (intent.ResolveActivity(Forms.Context.PackageManager) == null)
				return;

			Forms.Context.StartActivity(intent);
		}
Example #6
0
        public static void StartMap(Context context)
        {
            var locationIntent = new Intent(Intent.ActionView);
            var prefs = PreferenceManager.GetDefaultSharedPreferences(context);
            var location = prefs.GetString(context.GetString(Resource.String.LocationPrefKey), context.GetString(Resource.String.LocationPrefDefault));

            var geoLocation = Uri.Parse("geo:0,0?").BuildUpon().AppendQueryParameter("q", location).Build();
            locationIntent.SetData(geoLocation);

            if (locationIntent.ResolveActivity(context.PackageManager) != null)
            {
                context.StartActivity(locationIntent);
            }
            else
            {
                Log.Debug("SpringTime", "Could not open activity with location: " + location);
            }
        }
Example #7
0
        /// <summary>
        /// Creates the share <see cref="Intent"/> and launches it.
        /// </summary>
        /// <returns>Returns <see cref="bool"/> with <value>true</value> if sucessful or <value>false</value> if not.</returns>
        /// <exception cref="!:NoType:ActivityNotFoundException">May throw if any email activities not found.</exception>
        public bool Send()
        {
            var shareIntent = new Intent(Intent.ActionSend);
            shareIntent.SetType(_mimeType);

            shareIntent.PutExtra(Intent.ExtraText, BuildText());

            if (_uri != null)
                shareIntent.PutExtra(Intent.ExtraStream, _uri);

            if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
                shareIntent.AddFlags(ActivityFlags.NewDocument);
            else
                shareIntent.AddFlags(ActivityFlags.ClearWhenTaskReset);

            if (shareIntent.ResolveActivity(_context.PackageManager) == null) return false;

            _context.StartActivity(shareIntent);
            return true;
        }
 internal static bool IsIntentSupported(AndroidIntent intent) =>
 intent.ResolveActivity(AppContext.PackageManager) != null;
        private void OpenPreferredLocationInMap()
        {
            ISharedPreferences sharedPrefs =
                PreferenceManager.GetDefaultSharedPreferences(this);
            string location = sharedPrefs.GetString(
                "city",
                "Thessaloniki");

            // Using the URI scheme for showing a location found on a map. This super-handy
            // intent can is detailed in the "Common Intents" page of Android's developer site:
            // http://developer.android.com/guide/components/intents-common.html#Maps

            Android.Net.Uri geoLocation = Android.Net.Uri.Parse("geo:0,0?").BuildUpon()
                .AppendQueryParameter("q", location)
                .Build();

            Intent intent = new Intent(Intent.ActionView);
            intent.SetData(geoLocation);

            if (intent.ResolveActivity(PackageManager) != null)
            {
                StartActivity(intent);
            }
            else
            {
                Log.Debug("SunshineX", "Couldn't call " + location + ", no receiving apps installed!");
            }
        }
		void StartRouting(double lat, double lon)
		{
			// TODO: Conversion from lat/lon to string should be on all devices with point "." instead of ","
			string uri = String.Format("google.navigation:q={0},{1}", lat.ToString().Replace(",", "."), lon.ToString().Replace(",", "."));
			Intent intent = new Intent(Intent.ActionView, Android.Net.Uri.Parse(uri));
			if (intent.ResolveActivity(this.PackageManager) != null) {
				this.StartActivity(intent);
			}
		}
//		private void OpenNotification(Context context,Bundle bundle)
//		{
//			//清除通知
//			//JPushInterface.ClearNotificationById(context,bundle.GetInt(JPushInterface.ExtraNotificationId));//根据通知id
//			String extras = bundle.GetString(JPushInterface.ExtraExtra);
//			JPushInterface.ClearAllNotifications(context);//清除所有通知
//			Intent intent = new Intent(context,typeof(AlarmDetailInfoActivity));
//			bundle.PutString("alarmOrigin","Jpush");
//			intent.PutExtras (bundle);
//			intent.SetFlags (ActivityFlags.NewTask);
//			context.StartActivity (intent);
//		}


		private void OpenNotification(Context context,Bundle bundle)
		{
			//清除所有通知
			JPushInterface.ClearAllNotifications(context);
			//判断app进程是否存活
			if (EldYoungUtil.IsApplive (context, "com.eldyoung.lelaozuandroidapp")) {
				//如果存活的话,就直接启动报警DetailActivity,但要考虑一种情况,就是app的进程虽然仍然在
				//但Task栈已经空了,比如用户点击Back键退出应用,但进程还没有被系统回收,如果直接启动
				//DetailActivity,再按Back键就不会返回任何界面了。所以在启动DetailActivity前,要先启动splash界面。
				Log.Info("NotificationReceiver", "the app process is alive");
				bool mainActivityexistflag = false;
				Intent mainIntent = new Intent(context, typeof(MainFragActivity));
				var cmpName = mainIntent.ResolveActivity (context.PackageManager);
				if (cmpName != null) {
					//系统存在此activity
					ActivityManager _activityManager = (ActivityManager)context.GetSystemService (Context.ActivityService);
					var taskInfoLists = _activityManager.GetRunningTasks (20);
					foreach (ActivityManager.RunningTaskInfo taskInfo in taskInfoLists) {
						if (taskInfo.BaseActivity.Equals (cmpName)) {
							mainActivityexistflag = true;
							break;
						}

					}
				}

				//堆栈中不存在主界面活动,进入splash界面
				if (!mainActivityexistflag) {
					Intent launchIntent = context.PackageManager.GetLaunchIntentForPackage ("com.eldyoung.lelaozuandroidapp");
					launchIntent.SetFlags (
						ActivityFlags.NewTask | ActivityFlags.ResetTaskIfNeeded);
					bundle.PutString ("alarmOrigin", "Jpush");
					launchIntent.PutExtras (bundle);
					context.StartActivity (launchIntent);

				} else {
					//堆栈中存在主界面活动
					Intent alarmDetailInfoIntent = new Intent(context, typeof(AlarmDetailInfoActivity));
					alarmDetailInfoIntent.SetFlags (ActivityFlags.NewTask | ActivityFlags.SingleTop);
					bundle.PutString("alarmOrigin","Jpush");
					alarmDetailInfoIntent.PutExtras (bundle);
					context.StartActivity (alarmDetailInfoIntent);
				}
				   
			} else {
				//如果app进程已经被杀死,先重新启动app,将alarmDetailActivity的启动参数传入Intent中,参数经过
				//SplashActivity传入MainActivity,此时app的初始化已经完成,在MainActivity中就可以根据传入,参数跳转到DetailActivity中去了
				Log.Info("NotificationReceiver", "the app process is dead");
				Intent launchIntent = context.PackageManager.GetLaunchIntentForPackage ("com.eldyoung.lelaozuandroidapp");
				launchIntent.SetFlags(
					ActivityFlags.NewTask|ActivityFlags.ResetTaskIfNeeded);
				bundle.PutString("alarmOrigin","Jpush");
				launchIntent.PutExtras (bundle);
				context.StartActivity(launchIntent);

					
			}
				
		}
Example #12
0
        private void openPreferredLocationInMap()
        {
            ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences (this);
            var zipCode = prefs.GetString (Resources.GetString (Resource.String.pref_location_key), Resources.GetString (Resource.String.pref_location_default));

            var geoLocation = Android.Net.Uri.Parse ("geo:0,0?")
                    .BuildUpon ()
                    .AppendQueryParameter ("q", zipCode)
                    .Build ();
            var mapIntent = new Intent (Intent.ActionView, geoLocation);
            if (mapIntent.ResolveActivity (this.PackageManager) != null) {
                StartActivity (mapIntent);
            } else {
                Toast.MakeText (this, "No Map App found", ToastLength.Long).Show ();
                Log.Debug ("Main Activity", "Couldn't call " + zipCode + ", No Maps App");
            }

            //Alternative way of calling the activity but not a fully implicint intent
            //			var geoLocation = Android.Net.Uri.Parse("http://maps.google.com/maps/place/"+zipCode);
            //
            //			var mapIntent = new Intent(Intent.ActionView,geoLocation);
            //			mapIntent.SetClassName ("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
            //			try
            //			{
            //				StartActivity (mapIntent);
            //
            //			}
            //			catch(ActivityNotFoundException ex)
            //			{
            //				try
            //				{
            //					Intent unrestrictedIntent = new Intent(Intent.ActionView, geoLocation);
            //					StartActivity(unrestrictedIntent);
            //				}
            //				catch(ActivityNotFoundException innerEx)
            //				{
            //					Toast.MakeText(this, "Please install a maps application", ToastLength.Long).Show();
            //				}
            //			}
        }
		private void MButtonTakePicture_Click(object sender, EventArgs e) {
			Intent takePictureIntent = new Intent(MediaStore.ActionImageCapture);
			if (takePictureIntent.ResolveActivity(PackageManager) != null) {
				Java.IO.File photoFile = null;
				try {
					photoFile = CreateImageFile();
				} catch (Java.IO.IOException ex) {
					Toast.MakeText(this, "Coœ sie zjeba³o ze zdjeciem", ToastLength.Long).Show();
				}
				if (photoFile != null) {
					photoIsTaking = true;
					takePictureIntent.PutExtra(MediaStore.ExtraOutput, Android.Net.Uri.FromFile(photoFile));
					StartActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
				}
			}
		}
 internal static bool IsIntentSupported(AndroidIntent intent, string expectedPackageName) =>
 intent.ResolveActivity(AppContext.PackageManager) is ComponentName c && c.PackageName == expectedPackageName;
		bool HasRouting()
		{
			Intent intent = new Intent(Intent.ActionView, Android.Net.Uri.Parse("google.navigation:q=0,0"));

			return intent.ResolveActivity(this.PackageManager) != null;
		}
Example #16
0
        /// <summary>
        /// Creates the email <see cref="Intent"/> and launches it.
        /// </summary>
        /// <returns>Returns <see cref="bool"/> with <value>true</value> if sucessful or <value>false</value> if not.</returns>
        /// <exception cref="!:NoType:ActivityNotFoundException">May throw if any email activities not found.</exception>
        public bool Send()
        {
            var emailIntent = new Intent(Intent.ActionSend);
            emailIntent.SetType(Mime.Email);
            emailIntent.SetData(Uri.Parse("mailto:"));

            if (_toList.Any())
                emailIntent.PutExtra(Intent.ExtraEmail, _toList.ToArray());

            if (_ccList.Any())
                emailIntent.PutExtra(Intent.ExtraCc, _ccList.ToArray());

            if (_bccList.Any())
                emailIntent.PutExtra(Intent.ExtraBcc, _bccList.ToArray());

            emailIntent.PutExtra(Intent.ExtraSubject, _subject);
            emailIntent.PutExtra(Intent.ExtraText, _body);

            if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
                emailIntent.AddFlags(ActivityFlags.NewDocument);
            else
                emailIntent.AddFlags(ActivityFlags.ClearWhenTaskReset);

            if (emailIntent.ResolveActivity(_context.PackageManager) == null) return false;

            _context.StartActivity(emailIntent);
            return true;
        }
		public override bool OnOptionsItemSelected (IMenuItem item)
		{
			// The action bar home/up action should open or close the drawer.
			// ActionBarDrawerToggle will take care of this.
			if (mDrawerToggle.OnOptionsItemSelected (item)) {
				return true;
			}
			// Handle action buttons
			switch (item.ItemId) {
			case Resource.Id.action_websearch:
				// create intent to perform web search for this planet
				Intent intent = new Intent (Intent.ActionWebSearch);
				intent.PutExtra (SearchManager.Query, this.ActionBar.Title);
				// catch event that there's no activity to handle intent
				if (intent.ResolveActivity (this.PackageManager) != null) {
					StartActivity (intent);
				} else {
					Toast.MakeText (this, Resource.String.app_not_available, ToastLength.Long).Show ();
				}
				return true;
			default:
				return base.OnOptionsItemSelected (item);
			}
		}