2011-10-19 78 views
9

Tôi rất tò mò nếu Android NFC service cho phép nhà phát triển bắt đầu Service (hoặc IntentService cho vấn đề đó) khi quét NFC?Dịch vụ khởi động NFC Android

Từ Android Developers:

Khi một thiết bị quét thẻ có NDEF dữ liệu trên đó, nhưng không thể ánh xạ tới một MIME hoặc URI, hệ thống thẻ công văn cố gắng để bắt đầu một hoạt động với mục đích ACTION_TECH_DISCOVERED.

Có vẻ như chỉ một Hoạt động mới có thể được khởi chạy chứ không phải Dịch vụ, mặc dù nó có thể nhận được cùng một bộ lọc Ý định.

+2

Không, người ta không thể bắt đầu một dịch vụ từ một thẻ quét hoặc một nhận được tin nhắn Android Beam. Xem thêm nhận xét cho http://stackoverflow.com/a/9490726/1202968 –

+0

@NFC guy, vui lòng xem xét đăng câu trả lời, thay vì nhận xét – HitOdessit

+4

Xem http://meta.stackexchange.com/a/98955/190880 –

Trả lời

10

Mặc dù không phải là phương pháp trực tiếp, bạn có thể có một barebones Activity đó ngay lập tức sẽ bắt đầu một dịch vụ, sau đó bỏ:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    Context con = getApplicationContext(); 
    Intent srv = new Intent(con, TargetService.class); 
    con.startService(srv); 
    finish(); 
} 
+0

có , đó cũng là giải pháp của tôi quá –

+2

Đừng quên thêm Thẻ phụ vào mục đích dịch vụ, nếu bạn muốn tương tác với thẻ từ dịch vụ. – ge0rg

Các vấn đề liên quan