我想从相机应用程序中拍摄新照片时从我的应用程序创建通知.我希望在我的应用程序未运行时实现此目的.我正在使用广播接收器来做到这一点.
这是我的代码……
在Android Manifest ..
<receiver androID:name=".receivers.CameraEventReceiver" androID:label="CameraEventReceiver" androID:enabled="true"> <intent-filter> <action androID:name="androID.harDWare.action.NEW_PICTURE" /> <data androID:mimeType="image/*" /> </intent-filter></receiver>
在我的接收器课上
public class CameraEventReceiver extends broadcastReceiver { @OverrIDe public voID onReceive(Context context, Intent intent) { notificationmanager manager = (notificationmanager) context.getSystemService(Context.NOTIFICATION_SERVICE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){ NotificationChannel channel = new NotificationChannel("CHANNEL_ID", "my channel name", notificationmanager.importANCE_HIGH); manager.createNotificationChannel(channel); } NotificationCompat.Builder builder = new NotificationCompat.Builder(context, "CHANNEL_ID") .setcolor(ContextCompat.getcolor(context, R.color.colorPrimary)) .setSmallicon(R.mipmap.ic_launcher) .setContentTitle("Picture Taken") .setContentText("here is the uri : "+intent.getData()) .setDefaults(NotificationCompat.DEFAulT_VIBRATE) .setautoCancel(true); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN && Build.VERSION.SDK_INT < Build.VERSION_CODES.O){ builder.setPriority(NotificationCompat.PRIORITY_HIGH); } manager.notify(222, builder.build()); } }
当应用程序运行时,它适用于AndroID 6.0 …
但它不适用于较新的版本.我能做些什么来实现这个目标?
我希望它支持AndroID版本大于4.1的所有设备(JELLY_BEAN)
提前致谢
解决方法:
But it is not working for newer versions.
@H_419_32@正确.那些广播不再受支持.见the Android 7.0 release notes.
What can I do to achIEve this?
@H_419_32@无论是使用ACTION_IMAGE_CAPTURE,相机API还是库(例如,Fotoapparat,CameraKit-AndroID),您都可以自己拍照.
没有直接替换该广播,并且无论如何都没有要求相机应用触发该广播.
您可以使用
总结JobScheduler
andaddTriggerContentUri()
监视MediaStore以进行更改.但是,我不知道你怎么会把它限制在只有相机应用程序拍摄的照片.以上是内存溢出为你收集整理的android – 如何在相机应用程序拍摄新照片时生成通知?全部内容,希望文章能够帮你解决android – 如何在相机应用程序拍摄新照片时生成通知?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)