我需要检查我的注册接收者是否仍然注册,如果不是我如何检查任何方法?
api android broadcastreceiver android-broadcast android-broadcastreceiver
Android sendStickyBroadcast和sendBroadcastAndroid有什么区别?
我试图澄清Android中广播接收器和服务之间的区别.
我知道活动可以通过调用startService意图来启动服务.
广播接收器可以在代码或清单中注册,并可以使用sendBroadcast.
你什么时候使用一个与另一个?
我知道多个广播接收器可以监听相同的意图,而服务并非如此.
我有一个每隔一段时间调用一次的BroadcastReceiver,我注意到很多人都在使用它
android: process =":remote"
Run Code Online (Sandbox Code Playgroud)
在他们的接收器.我用来检查一些事情,如果条件匹配,则激活警报.我的问题是,我应该使用我在清单上面张贴的行吗?如果是这样的话,这样做有什么好处?
我已经检查了所有相关问题,但没有找到解决此问题的任何方法.所以这对我来说是一个绝对新的问题.
是)我有的
我有一个Android应用程序,它在其清单中注册了几个广播接收器.这就是我的清单看起来的样子.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.app.myapp">
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.WRITE_CALL_LOG" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
<uses-feature
android:name="android.hardware.screen.portrait"
android:required="false" />
<application
android:name=".base.MyApp"
android:allowBackup="false"
android:icon="@drawable/ic_launcher"
android:label="@string/label_app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:replace="label, allowBackup">
<receiver android:name=".mics.BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
</receiver>
<receiver android:name=".PhoneCallReceiver">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" …Run Code Online (Sandbox Code Playgroud) android broadcastreceiver android-broadcast android-broadcastreceiver
我正在开发一个广播接收器,用于Android中的来电和接听来电,我想在本地来电屏幕上弹出一个弹出窗口.
我完成了那段代码.但现在的问题是,在Android 4.1(Jelly Bean)API级别17中,当电话响铃时,它PHONE_STATE就会出现OFF HOOK,如果我正在调用一个活动,它会被调用,但它下面的代码不会被执行.我列出了代码:
package com.example.popwindowonincomingcallscreen;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import android.util.Log;
public class IncomingBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("IncomingBroadcastReceiver: onReceive: ", "flag1");
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
Log.d("IncomingBroadcastReceiver: onReceive: ", state);
if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)
|| state.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)) {
Log.d("Ringing", "Phone is ringing");
Intent i = new Intent(context, IncomingCallActivity.class);
i.putExtras(intent);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
Wait.oneSec();
context.startActivity(i);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在打电话的活动:
import android.app.Activity; …Run Code Online (Sandbox Code Playgroud) android broadcastreceiver android-widget android-layout android-broadcast
我一直在尝试做类似于truecaller应用程序的东西,我的应用程序应该在呼叫挂断后显示一个屏幕.通过android.intent.action.PHONE_STATE在manifest文件中注册隐式广播来实现这一点.
但是,如果我将应用程序更改为目标Android O,则无法正常工作,因为Android O广播限制,我正在尝试找出此用例的替代解决方案.
替代方案建议在Android的文档:Job scheduler或注册一个service与context.
作业调度程序:由于Job scheduler优化,接收回调会有一些延迟.因此,如果我们的应用程序屏幕在电话呼叫后几分钟显示,并且每隔几秒检查一次新的呼叫记录就会导致电池耗尽问题,这将影响用户体验.
在Java中使用上下文注册服务:即使应用程序未处于活动状态或活动状态,我也希望该行为能够正常工作.如果系统杀死了,这将无效Service.
注册前台服务:这需要一直向用户显示通知,这将是用户的垃圾邮件,并且全天候运行服务会消耗大量资源,这会破坏广播限制的整个目的.
请建议一个替代解决方案,以便用户体验保持不变.
提前致谢
performance android android-broadcast android-broadcastreceiver android-8.0-oreo
我正在开发一个基于通知的应用程序,我需要收听传入的通知.我已经能够收听来电,短信,邮件等.我不知道如何通过代码在Whatsapp上听朋友的ping或消息.这可以实际完成吗?如果是这样,怎么样?可以使用Accessibility Service,使用Package Name作为"com.whatsapp"吗?
android android-intent android-notifications android-notification-bar android-broadcast
如何在android中设置播放/暂停,下一个和上一个按钮的通知.
我是Android的新手,也是堆栈溢出的新手.所以请耐心等待.

我开始播放歌曲时设置通知,如下所示:
`
@SuppressLint("NewApi")
public void setNotification(String songName){
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager notificationManager = (NotificationManager) getSystemService(ns);
@SuppressWarnings("deprecation")
Notification notification = new Notification(R.drawable.god_img, null, System.currentTimeMillis());
RemoteViews notificationView = new RemoteViews(getPackageName(), R.layout.notification_mediacontroller);
//the intent that is started when the notification is clicked (works)
Intent notificationIntent = new Intent(this, AudioBookListActivity.class);
PendingIntent pendingNotificationIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.contentView = notificationView;
notification.contentIntent = pendingNotificationIntent;
notification.flags |= Notification.FLAG_NO_CLEAR;
//this is the intent that is supposed to be called when the button is clicked …Run Code Online (Sandbox Code Playgroud) android android-notifications android-mediaplayer android-broadcast
提到这里,当屏幕熄灭,在onStop()当前活动的将被调用.我需要在调用onStop()my 时检查屏幕的开/关状态Activity.所以我已经注册了BroadcastReceiver这些动作(ACTION_SCREEN_ONAND ACTION_SCREEN_OFF)来记录当前的开/关状态(并且它们正常工作,我已经记录了!).
但当我关闭屏幕并检查其中的开/关状态时onStop,表示屏幕已打开.为什么?我认为接收器必须接收ACTION_SCREEN_OFF之前onStop被调用所以有什么问题?