C# 在锁定状态下在电话屏幕上显示Toast
我们的目标是在接到来电时敬酒当设备被锁定并发生输入呼叫时,此操作将不起作用。然后,在“锁定的全屏输入呼叫视图”后面可以看到toast 我们尝试了不同的方法,得到了相同的结果:C# 在锁定状态下在电话屏幕上显示Toast,c#,xamarin.forms,xamarin.android,android-toast,android-phone-call,C#,Xamarin.forms,Xamarin.android,Android Toast,Android Phone Call,我们的目标是在接到来电时敬酒当设备被锁定并发生输入呼叫时,此操作将不起作用。然后,在“锁定的全屏输入呼叫视图”后面可以看到toast 我们尝试了不同的方法,得到了相同的结果: PhoneCallListener/BroadcastReceiver 使用带有一些标志的新意图(ShowOnLockScreen等),而不是祝酒词 权限: <uses-permission android:name="android.permission.READ_PHONE_STATE" /> pub
- PhoneCallListener/BroadcastReceiver
- 使用带有一些标志的新意图(ShowOnLockScreen等),而不是祝酒词
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
public class PhoneCallDetector : PhoneStateListener
{
public override void OnCallStateChanged(CallState state, string incomingNumber)
{
ShowToast(incomingNumber);
base.OnCallStateChanged(state, incomingNumber);
}
private void ShowToast(string phonenumber)
{
Toast toast = Toast.MakeText(Application.Context, phonenumber, ToastLength.Long);
toast.SetGravity(GravityFlags.Center, 0, 0);
toast.Show();
}
}
我们知道一些应用程序可以通过“锁定全屏输入通话视图”成功显示祝酒词,但它们是用java编写的。。。他们也不做任何特别的事情,然后Toast.MakeText(..)
编辑:
=>PhoneStateListener生活在后台。从服务开始。
服务是如何开始的
Intent serviceStart = new Intent(context, typeof(PhoneCallService));
context.StartService(serviceStart);
如何调用PhoneCallDetector
var phoneCallDetector = m_scope.Resolve<PhoneCallDetector>();
var tm = (TelephonyManager)GetSystemService(TelephonyService);
tm.Listen(phoneCallDetector, PhoneStateListenerFlags.CallState);
var phoneCallDetector=m_scope.Resolve();
var tm=(TelephonyManager)GetSystemService(TelephonyService);
Listen(phoneCallDetector,PhoneStateListenerFlags.CallState);
感谢您的帮助:-)您需要阅读此内容并参考此链接
Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS = "lock_screen_allow_private_notifications"
Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS = "lock_screen_show_notifications"
int ShowAll = Settings.Secure.getInt(getContentResolver(),"lock_screen_allow_private_notifications", -1);
int NotificationEnable = Settings.Secure.getInt(getContentResolver(),"lock_screen_show_notifications", -1);
if(ShowAll > 0 && NotificationEnable > 0){
//post notification
}
您看到了哪些Java库,如果您链接了一些,我很乐意看看他们的库是否有可以转换的内容,我倾向于在业余时间将Java转换为与Xamarin兼容的库等。该应用程序名为“local.ch”()。此应用程序与此相同(但使用java编写)->BackgroundService->TelephonyService->ShowToast。不同的是,这个应用程序的祝酒词是在锁定的手机屏幕上…谷歌给了某些知名度高的开发者一些“超级秘密”权限,这些权限只允许motals做不到的事情(参见Facebook最近关于在用户不知情的情况下捕获屏幕截图的文章)。也许这就是其中之一。如果你不能使用“普通”方法访问锁定页面,可能是因为你不能访问。可能是,我认为他们没有特别的权限。我想在电话铃响(来电)时显示更多信息,这是sooo crazy特别节目吗?谢谢你的回答。我想干杯,而不是通知:(我发现,我的方法是在三星Galaxy S6上使用安卓8.0,但在小米M1或像素2上不起作用,奇怪。。。。