简体   繁体   中英

How i can use permissionplugin with zxing nuget pkg in xamarin.forms app?

OnRequestPermissionsResult mentioned in permissionplugin pkg by "jamesmontemagno"

public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
        {
            PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
            base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
        }

OnRequestPermissionsResult mentioned in Zxing pkg

public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
            {

                global::ZXing.Net.Mobile.Android.PermissionsHandler.OnRequestPermissionsResult(requestCode, permissions, grantResults);

            }

I am trying to achieve it using the following code.

[Activity(Label = "BarcodeScanning", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation, ScreenOrientation = ScreenOrientation.Portrait | ScreenOrientation.Landscape)]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource = Resource.Layout.Toolbar;

            base.OnCreate(savedInstanceState);
            Plugin.CurrentActivity.CrossCurrentActivity.Current.Init(this, savedInstanceState);

            ZXing.Net.Mobile.Forms.Android.Platform.Init();

            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
            LoadApplication(new App());
        }


        public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
        {
            global::ZXing.Net.Mobile.Android.PermissionsHandler.OnRequestPermissionsResult(requestCode, permissions, grantResults);
            PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
            base.OnRequestPermissionsResult(requestCode, permissions, grantResults);

        }       
    }

I want to use both Nuget Packages and show users to show the popup for location permission. Please provide me your valuable suggestions.

Requesting permissions is an OS requirement and has nothing to do with ZXing or any library in general.

Now if you check the PermissionsPlugin's Github you will find all your answers there

Current Activity plugin is a must-have for this package to work properly, Also always add the needed permissions into the info.plist for iOS.

Then you ask for permission something like this:

var status = await CrossPermissions.Current.CheckPermissionStatusAsync<LocationPermission>();

You can check the available API's here and a simple example can be found here

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM