【问题标题】:How to detect a change in Hardware(sim Change) using Xamarin如何使用 Xamarin 检测硬件变化(sim Change)
【发布时间】:2019-08-22 19:04:38
【问题描述】:

如何在手机(Xamarin)中更改 SIM 卡时访问事件? 我已经搜索并获得了 android(Java) 中的引用我什至尝试过这个example 但它没有触发。我可以获得任何与 Xamarin 相关的链接吗?

【问题讨论】:

  • Xamarin 使用 Android 和 iOS 使用的内容。你真的不需要任何与 xamarin 相关的东西,你必须实现你为原生 android 和原生 ios 找到的东西。您链接的示例应该可以工作,但您应该查看 Xamarin 项目的 IntentFilter C# 属性,而不是尝试自己编辑 androidmanifest 文件
  • 谢谢@Miiite。我会研究意图过滤器。 :)

标签: xamarin events sim-card


【解决方案1】:

您可以使用这个简单的代码来检测 SIM 卡的变化。

将新的类文件添加到您的 Android 项目中SimStateChangedReceiver.cs

[BroadcastReceiver(Enabled = true)]
[IntentFilter(new[] { "android.intent.action.SIM_STATE_CHANGED"}, Priority = (int)IntentFilterPriority.HighPriority)]
public class SimStateChangedReceiver : BroadcastReceiver
{
    public override void OnReceive(Context context, Intent intent0)
    {                
       Toast.MakeText(Application.Context, "Sim state has been changed", ToastLength.Long).Show();
    }
}

还在清单中提供 READ_PHONE_STATE 权限

<uses-permission android:name="android.permission.READ_PHONE_STATE" />   

当您在手机中更换 SIM 卡时,OnReceive 方法将触发。

【讨论】:

  • 感谢您的回答。我也这样做了,但无法使用此方法。
  • 您尝试使用 toast msg 而不是 Log.Debug 并检查。这是我昨天实施的工作示例
  • 当然。我会像你说的那样添加
  • 我测试过,但它没有达到断点。我正在像 "Build app" 然后 "change sim" 一样测试它。执行抛出。这个方法在 try catch 中。
  • 是的,调试时需要打开/关闭 SIM 卡槽。它抛出了什么异常?你也可以添加有问题的清单代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-03
  • 1970-01-01
  • 2021-08-04
  • 2012-05-18
  • 1970-01-01
相关资源
最近更新 更多