gpt4 book ai didi

android - Xamarin.Forms;在屏幕上显示设备上我的 SIM 卡的电话号码

转载 作者:搜寻专家 更新时间:2023-11-01 09:33:40 25 4
gpt4 key购买 nike

我想在屏幕上显示我的设备的电话号码。

在 Xamarin.Android 中,代码可以正常工作。但我想在 Xamarin.Forms 中使用代码。我已经搜索过,但没有找到任何结果。

Android.Telephony.TelephonyManager tMgr = (Android.Telephony.TelephonyManager)this.GetSystemService(Android.Content.Context.TelephonyService);
string mPhoneNumber = tMgr.Line1Number;

-我已授予权限:READ_PHONE_STATE

   <StackLayout>
<Button FontSize="Large" Text="Telefon Numarasını Al" BackgroundColor="Blue" x:Name="btnNumaraAl" Clicked="btnNumaraAl_Clicked"></Button>
<Label FontSize="Large" BackgroundColor="Red" x:Name="txtPhone" VerticalOptions="Center" HorizontalOptions="Center"></Label>
</StackLayout>

当我点击 btnNumaraAl 时,txtPhone.Text 可以是我的设备电话号码。

资源: Getting the number of the phone Xamarin.Android? https://developer.xamarin.com/api/type/Android.Telephony.TelephonyManager/

最佳答案

  1. 定义您的抽象,即 Xamarin.Forms 项目中的接口(interface)。

    namespace YourApp
    {
    public interface IDeviceInfo
    {
    string GetPhoneNumber();
    }
    }
  2. 然后,您需要在每个平台上实现。 Android 实现应如下所示。

    using Android.Telephony;
    using TodoApp;
    using Xamarin.Forms;
    [assembly:Xamarin.Forms.Dependency(typeof(YourApp.Droid.DeviceInfo))]
    namespace YourApp.Droid
    {
    public class DeviceInfo: IDeviceInfo
    {
    public string GetPhoneNumber()
    {
    var tMgr = (TelephonyManager)Forms.Context.ApplicationContext.GetSystemService(Android.Content.Context.TelephonyService);
    return tMgr.Line1Number;
    }
    }
    }
  3. 最后,您可以使用 DependencyService 在您的 Xamarin.Forms 项目中使用。

     var deviceInfo = Xamarin.Forms.DependencyService.Get<TodoApp.IDeviceInfo>();
    var number = deviceInfo.GetPhoneNumber();

Just to mention that on iOS you cannot get the owner phone number due to security restrictions. You can review this question Programmatically get own phone number in iOS

基于此,您可能需要检查您的应用是在 Android 还是 iOS 上。

switch(Device.RuntimePlatform){
case "Android":
//you can
break;
case "iOS"
//You can't
break;
}

关于android - Xamarin.Forms;在屏幕上显示设备上我的 SIM 卡的电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45068889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com