我正在研究xamarin.forms。我需要获取电话号码,如果设备是双SIM卡,那么我需要获取两个号码。我该如何实现?引用我来到这里后,有很多与此相关的问题。
我在shard项目中创建了一个接口,并在android项目中实现了该接口。android.permission.READ_PHONE_NUMBERS
在共享项目中创建接口
public interface IDeviceInfo
{
string GetMyPhoneNumber();
}
Run Code Online (Sandbox Code Playgroud)
在android项目中实现了界面
public string GetMyPhoneNumber()
{
try
{
TelephonyManager mgr =
Android.App.Application.Context.GetSystemService(Context.TelephonyService) as TelephonyManager;
return mgr.Line1Number;
}
catch (Exception ex)
{
throw;
}
}
Run Code Online (Sandbox Code Playgroud)
在按钮之一上单击共享项目
private void GetPhone_Clicked(object sender, EventArgs e)
{
try
{
var data = DependencyService.Get<IDeviceInfo>().GetMyPhoneNumber();
}
catch (Exception ex)
{
throw;
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用android 5时,它返回空字符串,如果我使用android 6+,则给出权限错误,如Java.Lang.SecurityException:getLine1NumberForDisplay:用户10286或当前进程都没有android.permission.READ_PHONE_STATE,android.permission。 READ_SMS或android.permission.READ_PHONE_NUMBERS
如何在所有Android版本中解决此问题?
我正在研究 xamarin 表单。我在哪里使用 API。当我在 android 5 中运行该应用程序时,它工作正常,但如果我运行 7 +,它会给出类似的错误
无法解析主机“almsdev.southeastasia.cloudapp.azure.com”:没有与主机名关联的地址。
如何解决这个问题?
以下是代码片段:
public async Task<HttpResponseMessage> Login(string EmailOrMobile)
{
try
{
var responseTask = await client.GetAsync(OauthBaseUrl + "OAuthSAAS/MSLogin?UserCredentials=" + EmailOrMobile);
return responseTask;
}
catch (Exception ex)
{
Crashes.TrackError(ex);
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
单击按钮时我正在调用上面的方法
private async void fn_Submit_Clicked(object sender, EventArgs e)
{
var response = await _oauthService.Login(txt_credentails.Text.Trim());
}
Run Code Online (Sandbox Code Playgroud)
我的基本 URL 是
http://almsdev.southeastasia.cloudapp.azure.com:81/api/
我正在使用 Http client = new Http();
我正在处理 Xamarin 表单,我在图像内部使用了 TapGestureRecognizer,现在点击该图像我需要在 c# 中获取图像的源。我怎样才能得到它?我这样做的原因是,单选按钮在 Xamarin 表单中不可用,点击图像时,我将检查图像的来源,如果源已选中图像,那么我需要将源更改为未选中,反之亦然。
这是我的 XAML 代码
<Image Scale="0.7" HorizontalOptions="Start" x:Name="radioButton" Source="unchecked.png">
<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="radioButton_Clicked">
</TapGestureRecognizer>
</Image.GestureRecognizers>
</Image>
Run Code Online (Sandbox Code Playgroud)
这是我的 C# 代码
private void radioButton_Clicked(object sender, EventArgs e)
{
var imageSource = "";//get image source here
if (imageSource == "Checked.png")
{
radioButton.Source = "Unchecked.png";
}
else
{
radioButton.Source = "Checked.png";
}
}
Run Code Online (Sandbox Code Playgroud)