我想从相机应用程序中拍摄新照片时从我的应用程序创建通知.我希望在我的应用程序未运行时实现此目的.我正在使用广播接收器来做到这一点.
这是我的代码……
在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.
正确.那些广播不再受支持.见the Android 7.0 release notes.
What can I do to achieve this?
无论是使用ACTION_IMAGE_CAPTURE,相机API还是库(例如,Fotoapparat,CameraKit-Android),您都可以自己拍照.
没有直接替换该广播,并且无论如何都没有要求相机应用触发该广播.
您可以使用JobScheduler
and addTriggerContentUri()
监视MediaStore以进行更改.但是,我不知道你怎么会把它限制在只有相机应用程序拍摄的照片.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。