Android原生默认是usb插入时,大容量存储以通知的形式告知用户,不会自动弹出,下面的方法可以让其自动弹出。
下面附上源码
frameworks\base\packages\SystemUI\src\com\android\systemui\usb\
StorageNotification.java
void updateUsbMassStorageNotification(boolean available) {
if (available) {
Intent intent = new Intent();
intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);
setUsbStorageNotification(
com.android.internal.R.string.usb_storage_notification_title,
com.android.internal.R.string.usb_storage_notification_message,
com.android.internal.R.drawable.stat_sys_data_usb,
false, true, pi);
}
这里就是当usb插入时,会在此生成一个UsbStorage的Notification,其跳转Activity为
com.android.systemui.usb.UsbStorageActivity,这个类在UsbStorageActivity.java里,感兴趣的可以参考下这个类,这就好办了,我们可以直接跳到这个类里,所以在这个函数最后加入startActivity(intent);呵呵,很简单吧!源码就是爽,源码里面方法严谨,框架清晰,里面有很多值得开发者去学习的地方。
改后
void updateUsbMassStorageNotification(boolean available) {
if (available) {
Intent intent = new Intent();
intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);
setUsbStorageNotification(
com.android.internal.R.string.usb_storage_notification_title,
com.android.internal.R.string.usb_storage_notification_message,
com.android.internal.R.drawable.stat_sys_data_usb,
false, true, pi);
//add by xieyuan
startActivity(intent);
//end
}
小弟刚刚涉足Android SDK的开发,感觉这个比起做Android应用来,这个有趣一些,呵呵,希望和广大程序员一同进步,一同分享Android开发工作中的乐趣,这是我的第一次写博客,有点小激动,我觉得,趁自己年轻时,记录一下自己的点滴,这会充实自己,我记得有句广告词写的不错 “人生就像一场旅行,不必在乎目的地,在乎的只是沿途的风景以及看风景的心情”。