2016-02-22 73 views

回答

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

+0

爲我工作...非常感謝! – AlexJC