Это кажется простой задачей, но я не могу это сделать.Видел кучу уроков и прочее.Может быть, кто-то может мне помочь.Я начинаю с приложения Xamarin Forms, в котором будет задание, специфичное для Android (Targeting Android 8.0 - Oreo).Поэтому для проверки я сделал следующее (XF 3.2.0.839982).Говорили об этом в основном потому, что у него нет методов OnResume, OnPause, On .... (или я не знаю о них).
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity, Application.IActivityLifecycleCallbacks
{
SMSBroadcastReceiver myreceiver;
IntentFilter intentFilter;
protected override async void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
var buttonbtnsendmessage = (Button)FindViewById(Resource.Id.sendBroadcast);
myreceiver = new SMSBroadcastReceiver();
intentFilter = new IntentFilter(SMSBroadcastReceiver.IntentAction);
intentFilter.Priority = 1000;
RegisterReceiver(myreceiver, intentFilter);
}
}
public class SMSBroadcastReceiver : BroadcastReceiver
{
public static string IntentAction = "android.provider.Telephony.SMS_RECEIVED";
public override void OnReceive(Context context, Intent i)
{
if (i.Action != IntentAction)
{
return;
}
Toast.MakeText(context, "Received broadcast in MyBroadcastReceiver, " +
" value received: " + i.GetStringExtra("key"),
ToastLength.Long).Show();
}
}
и Manifest
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="26" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.BROADCAST_SMS" />
Но он не попадает в мой приемник, когда я получаю SMS.Просто чтобы проверить, сработает ли это вообще, я изменил IntentAction на «MY_TEST» и отправил трансляцию из другого приложения, и она смогла выполнить тост.
Любые идеи?