2008-10-23 13 views
16

Có cách nào thanh lịch trong API Android để phát hiện phương tiện mới khi phương tiện được ghi vào thiết bị không? Tôi chủ yếu quan tâm đến ảnh do máy ảnh chụp, video được quay bằng máy ảnh và âm thanh được ghi từ micrô.API Android để phát hiện phương tiện mới từ máy ảnh và micrô tích hợp

Suy nghĩ hiện tại của tôi là định kỳ quét từng nhà cung cấp nội dung phương tiện và bộ lọc dựa trên thời gian quét lần cuối.

Tôi chỉ tự hỏi liệu có một số dịch vụ tôi có thể tham gia nhận thông báo thời gian thực hay không.

+0

Xem bài đăng tương tự: http://stackoverflow.com/questions/6639001/android-how-does-google-instant-upload-work –

Trả lời

10

Có một ý định phát sóng đặc biệt nên được gọi mỗi khi một ứng dụng viết bất cứ điều gì mới để Media Store:

Intent.ACTION_MEDIA_SCANNER_SCAN_FILE 

Các Broadcast Ý định bao gồm các đường dẫn đến tập tin mới, truy cập thông qua phương pháp Intent.getDataString().

Để nghe cho nó, chỉ cần tạo một BroadcastReceiver và đăng ký nó sử dụng một IntentFilter như hình dưới đây:

registerReceiver(new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     String newFileURL = intent.getDataString(); 
     // TODO React to new Media here. 
    }  
    }, new IntentFilter(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE)); 

này sẽ chỉ làm việc cho các tập tin được chèn vào một trong những nhà cung cấp nội dung truyền thông Store. Ngoài ra, nó còn phụ thuộc vào ứng dụng đang đưa nó phát sóng ý định, mà tất cả ứng dụng gốc (Google) đều làm.

+3

Điều này không hiệu quả đối với tôi - Galaxy Nexus. Đã thử mã ở trên và thậm chí là biểu hiện xml (người nhận) –

+1

không hoạt động trên nexus 5 lollipop –