Xamarin.forms로 작업 중이며 현재 페이지의 레이블에 (이를 실행중인 Android 휴대폰의) 전화 번호를 표시하려고합니다. 문제는 Android의 MainActivity에서 변경을 수행 할 수 없으며 각각의 page.xaml.cs 코드로 전화 번호를 가져올 수 없다는 것입니다.
누군가 이것을하는 방법을 알고 있습니까? (간단한 것 같은데 난 거의 멍청이)
다음은 Android MainActivity.cs 파일의 코드입니다 (전화 번호는 "myPhoneNumber"에 저장 됨).
using System;
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Android.Locations;
using Android.Telephony;
using Android.Content;
using Xamarin.Forms;
namespace SOSChile.Droid
{
[Activity(Label = "SOSChile", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
string myPhoneNumber = "Hola";
protected override void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());
TelephonyManager tMgrStart = (TelephonyManager)this.GetSystemService(TelephonyService);
string myPhoneNumber = tMgrStart.Line1Number;
}
}
}
그리고 여기에 page.xaml.cs 파일이 있습니다 (수정하지는 않았지만 상황을 이해하는 데 도움이 될 수 있습니다 : P) :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace SOSChile
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class AndroidPage : ContentPage
{
public AndroidPage ()
{
InitializeComponent ();
}
}
}
좋아, 유일한 방법은 DependencyService 인 것 같습니다 (적어도 내가 찾은 유일한 방법입니다). 유튜브에는 충분한 튜토리얼이 있고 그렇게 어렵지는 않지만, 제가 가장 큰 문제는 컨텍스트로 "this"대신 "Android.App.Application.Context"를 사용해야한다는 사실을 몰랐습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다