日程

来源:互联网 发布:无人机模拟器软件下载 编辑:程序博客网 时间:2024/04/27 16:40

1:同步账号日程响起后-日程停止运行

前提:同步账号的日程 
步骤:账号的日程响起->下拉通知栏->点击全部延迟->过5min后->日程响起时候 

结果:提示:很抱歉,日程已停止运行 

log信息:

07-01 08:58:20.292   268   861 E ActivityManager: java.lang.NullPointerException07-01 08:58:20.292   268   861 E ActivityManager: at com.android.providers.settings.SettingsProvider.openFile(SettingsProvider.java:638)07-01 08:58:20.292   268   861 E ActivityManager: at android.content.ContentProvider$Transport.openFile(ContentProvider.java:245)07-01 08:58:20.292   268   861 E ActivityManager: at com.android.server.am.ActivityManagerService.openContentUri(ActivityManagerService.java:6635)07-01 08:58:20.292   268   861 E ActivityManager: at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:987)07-01 08:58:20.292   268   861 E ActivityManager: at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:1621)07-01 08:58:20.292   268   861 E ActivityManager: at android.os.Binder.execTransact(Binder.java:338)07-01 08:58:20.292   268   861 E ActivityManager: at android.media.MediaPlayer.setDataSource(Native Method)07-01 08:58:20.292   268   861 E ActivityManager: at com.android.server.NotificationManagerService.enqueueNotificationInternal(NotificationManagerService.java:819)07-01 08:58:20.292   268   861 E ActivityManager: at com.android.server.NotificationManagerService.enqueueNotificationInternal(NotificationManagerService.java:685)07-01 08:58:20.292   268   861 E ActivityManager: at com.android.server.NotificationManagerService.enqueueNotificationWithTag(NotificationManagerService.java:669)07-01 08:58:20.292   268   861 E ActivityManager: at android.app.INotificationManager$Stub.onTransact(INotificationManager.java:129)07-01 08:58:20.292   268   861 E ActivityManager: at android.os.Binder.execTransact(Binder.java:338)07-01 08:58:20.292   268   861 E ActivityManager: at dalvik.system.NativeStart.run(Native Method)07-01 08:58:20.312   268   861 D NotificationService: default notification will be used07-01 08:58:20.362   268   861 I ActivityManager: Start proc android.process.media for content provider com.android.providers.media/.MediaProvider: pid=3647 uid=10012 gids={1015, 1023, 1024, 2001, 3003, 3007}07-01 08:58:21.002  3628  3643 E AndroidRuntime: FATAL EXCEPTION: AlertService07-01 08:58:21.002  3628  3643 E AndroidRuntime: java.lang.NullPointerException07-01 08:58:21.002  3628  3643 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1333)07-01 08:58:21.002  3628  3643 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1281)07-01 08:58:21.002  3628  3643 E AndroidRuntime: at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:299)07-01 08:58:21.002  3628  3643 E AndroidRuntime: at android.app.NotificationManager.notify(NotificationManager.java:124)07-01 08:58:21.002  3628  3643 E AndroidRuntime: at android.app.NotificationManager.notify(NotificationManager.java:103)07-01 08:58:21.002  3628  3643 E AndroidRuntime: at com.android.calendar.alerts.AlertService.postNotification(AlertService.java:382)07-01 08:58:21.002  3628  3643 E AndroidRuntime: at com.android.calendar.alerts.AlertService.updateAlertNotification(AlertService.java:296)07-01 08:58:21.002  3628  3643 E AndroidRuntime: at com.android.calendar.alerts.AlertService.processMessage(AlertService.java:126)07-01 08:58:21.002  3628  3643 E AndroidRuntime: at com.android.calendar.alerts.AlertService$ServiceHandler.handleMessage(AlertService.java:468)07-01 08:58:21.002  3628  3643 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99)07-01 08:58:21.002  3628  3643 E AndroidRuntime: at android.os.Looper.loop(Looper.java:148)07-01 08:58:21.002  3628  3643 E AndroidRuntime: at android.os.HandlerThread.run(HandlerThread.java:60)

分析:上层代码报postNotification方法空指针等,这个问题上层应该没问题。
查看NotificationManagerService类,NotificationManagerService.java:819发现mMediaPlayer.setDataSource(notification.sound.toString());出现问题,
而上下代码为:
                        try {                            MediaPlayer mMediaPlayer = new MediaPlayer();                            mMediaPlayer.setDataSource(notification.sound.toString());                        } catch (Exception ex) {                            Slog.d(TAG, "default notification will be used");                            uri = Settings.System.DEFAULT_NOTIFICATION_URI;                        }


就是实例化一个媒体播放,然后设置声音源为notification.sound.toString(),如果获取不到,则抛出异常,并且设置uri为设置里面默认的铃声吧。。。

但是手机媒体扫描存在问题,所以在settings.db数据库中不存在对应的数据。进而报错。


2.fadf

原创粉丝点击