android 发送前台通知辅助后台监听录音,
最近一个语音项目需要唤醒功能,发现语音在应用进入后台一段时间,麦克风占用的那个红色警示还在,但是确监听不到麦克风的数据,只能百度一下坑在哪里,找到方法,发送前台通知完美解决。首先我们写个service/*** 前台service调整我要让应用在后台 也能够监听麦克风*/public class NotificationService exte...
·
最近一个语音项目需要唤醒功能,发现语音在应用进入后台一段时间,麦克风占用的那个红色警示还在,但是确监听不到麦克风的数据,只能百度一下坑在哪里,找到方法,发送前台通知完美解决。
首先我们写个service
/**
* 前台service调整 我要让应用在后台 也能够监听麦克风
*/
public class NotificationService extends Service {
private static final String TAG = "NotificationService";
private NotificationManager notificationManager;
//通知的标识号。
private int NOTIFICATION = 999;
public static NotificationService service;//启动service时候我们记录这service方便移除通知
@Override
public void onCreate() {
super.onCreate();
service = this;
showNotification();
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
public void showNotification() {
// PendingIntent如果用户选择此通知,则启动我们的活动
Intent intent = new Intent(MainController.getMainController().getMainActivity(), NotifyActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, channelId);
builder.setSmallIcon(R.mipmap.ic_launcher_m)
.setContentTitle("待唤醒...")//这个显示在通知栏
.setContentIntent(pendingIntent)
.setSound(null)//车震 声音啥的关了
.setVibrate(null)
.setOngoing(true)
.build();
startForeground(NOTIFICATION, builder.build());
}
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onDestroy() {
super.onDestroy();
}
/**
* 清除通知
*/
public void onClearNotify() {
stopForeground(true);
}
}
service 在清单文件注册下 别忘了
<service android:name=".NotificationService" />
然后调用就好了
当我们应用进入后台 并且我们还希望能够监听麦克风
context.startService(new Intent(context, NotificationService.class));
当应用返回前台了,这个通知就多余 我们不想要他
NotificationService.service.onClearNotify();
这样录音的AudioRecord在后台时
int readsize = audioRecord.read(audiodata, 0, audiodata.length);
得到的byte[] audiodata 就不会全是0了
点击阅读全文
更多推荐
已为社区贡献4条内容
活动日历
查看更多
直播时间 2025-01-08 16:30:00
DTT年度收官盛典:华为开发者空间大咖汇,共探云端开发创新
直播时间 2024-12-11 16:30:00
华为云数字人,助力行业数字化业务创新
直播时间 2024-11-27 16:30:00
企业数据治理一站式解决方案及应用实践
直播时间 2024-11-21 16:30:00
轻松构建AIoT智能场景应用
直播时间 2024-10-23 16:30:00
鲲鹏DevKit,助力开发者基于鲲鹏服务器实现一站式应用开发
所有评论(0)