一个浮动的小部件应该出现在一个电话之后(当应用程序关闭时)



我创建了一个浮动小部件,即使在应用程序关闭时也能工作。此外,我还有一个类,负责检测设备上的来电和来电,并发送合适的祝酒词。它也可以在应用程序关闭时工作。现在我想让浮动小部件显示在设备通话结束时显示在屏幕上.我试图这样做,但小部件没有出现。两者单独工作,但不能一起工作.

有两个类:

-创建widget: FloatingViewService扩展Service.

-Call Recognition: CallReceiver扩展BroadcastReceiver.

<<p>CallReceiver类/strong>
public class CallReceiver extends BroadcastReceiver {
// ^ detecting incoming and outgoing calls ^
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_OFFHOOK)){
showToast(context,"Call started...");
}
else if(intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_IDLE)){
showToast(context,"Call ended...");
//*****Activate the floating widget after the call ends.
startWidget( context );
}
else if(intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_RINGING)){
showToast(context,"Incoming call...");
}
}
//*****Activate widget
void startWidget(Context cotx) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //Permission checks
if (Settings.canDrawOverlays(cotx)) {
//     Start  widget service
startService( new Intent( cotx, FloatingViewService.class));
}
}
}
//*****Action: Start a particular service
public ComponentName startService(Intent service) {
throw new RuntimeException("Stub!");
}
//Another action unrelated to my question
}

我认为问题与"startService"操作。

我可以用一种相对简单的方法为自己解决这个问题。我所要做的就是删除"startService">andupdate "startWidget">如下:

void startWidget(Context cotx) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //Permission checks
if (Settings.canDrawOverlays(cotx)) {
Intent intent = new Intent(cotx,FloatingViewService.class);
cotx.startService(intent);
Log.i("Autostart", "started");
}
}
}

相关内容

  • 没有找到相关文章

最新更新