有沒有辦法檢測在通話嘗試時電話是否只能撥打緊急電話(使用Xamarin)?如何僅在Xamarin中檢測緊急呼叫?
0
A
回答
0
這是平臺特定的東西。 Unfortunaelty我不知道這個插件,所以你必須在Xamarin中使用本地API。
在Android上它是TelephonyManager
如下所示:https://stackoverflow.com/a/14355706/1489968這是Java的,但可以很容易地轉換爲C#:
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
var telMng = (TelephonyManager) GetSystemService(TelephonyService);
var myPhoneStateListener = new MyPhoneStateListener();
myPhoneStateListener.ServiceStateChanged += (s, e) => Console.WriteLine("State: {0}", e);
telMng.Listen(myPhoneStateListener, PhoneStateListenerFlags.ServiceState);
}
}
public class MyPhoneStateListener : PhoneStateListener
{
public event EventHandler<ServiceState> ServiceStateChanged;
public override void OnServiceStateChanged(ServiceState serviceState)
{
base.OnServiceStateChanged(serviceState);
ServiceStateChanged?.Invoke(this, serviceState);
}
}
0
在iOS上:不知道這些信息是可用的,從來沒有見過它通過暴露SDK ...(也許在這個問題中添加iOS標籤,或者詢問iOS only
的問題,回答可能在ObjC/Swift中,但你可以翻譯它)
在Android上:您正在查找的信息包含在手機的ServiceState
:
var callState = new ServiceState();
switch (callState.State) {
case PhoneState.InService:
{
var uri = Android.Net.Uri.Parse ("tel:555-2368"); // Jim Rockford's number ;-)
var intent = new Intent (Intent.ActionDial, uri);
StartActivity (intent);
break;
}
case PhoneState.EmergencyOnly:
{
Toast.MakeText (this, "Emergency Calls Only", ToastLength.Long).Show();
break;
}
case PhoneState.OutOfService:
{
Toast.MakeText (this, "Out of Service", ToastLength.Long).Show();
break;
}
case PhoneState.PowerOff:
{
Toast.MakeText (this, "Cell/Modem Power Off", ToastLength.Long).Show();
break;
}
default:
{
Toast.MakeText (this, "Should never be shown on a real device", ToastLength.Long).Show();
break;
}
}
編號:http://developer.android.com/reference/android/telephony/ServiceState.html
有關模擬器進行測試,您可以通過adb
殼設置狀態來denied
:
voice denied
data denied
編號:https://developer.android.com/tools/devices/emulator.html
相關問題
- 1. 緊急呼叫
- 2. 針對緊急呼叫(911)或緊急呼叫模式的Android標準行爲
- 3. 如何檢測Selector.wakeup呼叫
- 4. 緊急電話號碼檢測
- 5. UITextView檢測緊急電話號碼(112)
- 6. 在PhoneStateListener中傳出呼叫檢測
- 7. 如何檢測呼入和呼出呼叫結束狀態? iphone
- 8. Xamarin iOS在呼叫AudioUnit.SetEnableIO時中止
- 9. 檢測iPhone中的電話呼叫
- 10. 檢測Web服務呼叫源在WCF
- 11. 呼叫日誌檢測正在更改
- 12. 從WhatsApp的檢測呼叫和呼叫錄音
- 13. BroadcastReciever檢測兩個電話時,僅由一個呼叫
- 14. 緊急電話:沒有辦法檢測並幫助用戶
- 15. iOS如何檢測背景中的呼叫狀態?
- 16. 如何檢測Android上正在進行的呼叫數
- 17. 檢測Office Communicator的音頻呼叫
- 18. 檢測傳入的電話呼叫
- 19. 使用lync檢測團隊呼叫API
- 20. 檢測傳入的VoIP呼叫Android
- 21. 從命令行檢測VoIP呼叫 - Wireshark
- 22. 的iOS:NSObject的呼叫,並檢測其中的UIViewController的呼籲
- 23. 如何緊急通知Ada的任務?
- 24. 如何檢測如果呼叫通過jQuery的
- 25. 在Android 2.1中撥打緊急電話
- 26. 如何在另一個呼叫期間檢測來電並在另一個呼叫期間停止服務?
- 27. 如何在ejb呼叫中獲得呼叫IP地址?
- 28. 如何進行測試RingOut呼叫?
- 29. Android如何檢測傳出呼叫是否應答
- 30. 如何檢測SIM卡1或SIM卡2上的呼叫
爲我工作...非常感謝! – AlexJC