以下代码在调用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;
}
}
}