Xamarin形式的意图返回电池状态的无效例外



以下代码在调用IspluggedIn时给我一个无异常错误。除了错误,没有其他诊断输出。我正在尝试获得Android电池的状态:

using Xamarin.Forms;
using ClockXF.Droid;
using Android.Content;
using Android.OS;
using Android.App;
using Android.Widget;
using System.Threading.Tasks;
[assembly: Dependency(typeof(Texaco2))]
namespace ClockXF.Droid
{
    public class Texaco2 : Ipower
    {
        public Context context1 { get; private set; }
        public string ispluggedin()
        {
            IntentFilter ifilter = new IntentFilter(Intent.ActionBatteryChanged);
            Intent batteryStatus = context1.RegisterReceiver(null, ifilter);
            int level = batteryStatus.GetIntExtra(BatteryManager.ExtraPlugged, -1);          
            string s = level.ToString();
            return s;
        }
    }
}

适当的上下文是android.application.context用于registerReceiver。电池上的文档在这里:

https://developer.android.com/training/monitoring-device-state/battery-monitoring.html

工作代码如下:

using Xamarin.Forms;
using ClockXF.Droid;
using Android.Content;
using Android.OS; 
[assembly: Dependency(typeof(Texaco2))]
namespace ClockXF.Droid
{
    public class Texaco2 : Ipower
    {    
        public string ispluggedin()
        {
            IntentFilter ifilter = new IntentFilter(Intent.ActionBatteryChanged);
            Intent batteryStatus = Android.App.Application.Context.RegisterReceiver(null, ifilter);
            int pluggedin = batteryStatus.GetIntExtra(BatteryManager.ExtraPlugged, -1);          
            string s = pluggedin.ToString();
            return s;
        }
    }
}

相关内容

最新更新