为什么 Xamarin 类由于保护级别而无法访问?

问题描述 投票:0回答:1

我正在尝试以 Xamarin 形式访问电话管理器类。我阅读了需要在 Xamarin 中使用的constructor

虽然我对构造函数需要的类型和推理仍然有些困惑,但我将几个我认为应该有效的构造函数参数放在一起。我收到一个错误:

TelephonyManager(IntPtr, JNIHandleOwnership) 由于其保护级别而无法访问

怎么会这样?据我所知,我无法控制此 Android 类的 C# 版本的保护级别。

using Android.Telephony;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CellularSignal
{
    public class MainActivityViewModel
    {
        public double getRSSI()
        {
            IntPtr ptr = IntPtr.Zero;
            // **Intellisense error on line below**
            var t = new TelephonyManager(ptr, JniHandleOwnership.DoNotTransfer);
            return 0;

        }
    }
}
xamarin xamarin.android telephonymanager
1个回答
1
投票

这样的事情应该有效:

TelephonyManager tpMgr = (TelephonyManager)mAppContext.GetSystemService(Context.TelephonyService);

其中

mAppContext
是您在应用程序中使用的当前活动,如果您在其片段之一中,则可以从其 Activity 属性中获取活动。

© www.soinside.com 2019 - 2024. All rights reserved.