2013-12-17 4 views
2

Итак, это моя проблема. Я хочу, чтобы одно действие работало на всем уровне API, поддерживаемом мной в моей деятельности (от уровня API 8 до текущего уровня API).Использование Android Beam less API уровня 14

Моя проблема заключается в том, что если я хочу использовать Android Beam Мне нужна моя активность реализовать

NfcAdapter.CreateNdefMessageCallback и NfcAdapter.OnNdefPushCompleteCallback , но я не могу заставить его работать, если уровень SDK ниже 14.

Кто-нибудь знает, могу ли я сделать что-то еще, чтобы заставить его работать, например, приложение YouTube или мне нужно иметь два разных приложения: один для Android менее API 14 и еще один для Android API 14?

+0

ли вы имеете в виду вы хотите Android Beam работать на всех устройствах, или вы хотите использовать одинаковая активность на всех устройствах и отключить функцию Beam для тех, кто ее не поддерживает? – Kuffs

+0

Второй. Я хочу использовать одну и ту же активность на всех устройствах и отключить функцию Beam для тех, кто ее не поддерживает. Благодаря! – zapotec

ответ

1

Не используйте реализацию интерфейса непосредственно в своей деятельности.

Вместо этого проверьте уровень SDK и установить функцию обратного вызова вручную, если вы выше SDK14

например:

private class myCallback implements NfcAdapter.CreateNdefMessageCallback { 

    @Override 
    public NdefMessage createNdefMessage(NfcEvent nfcEvent) { 
     // Your callback code 
     ... 
    } 
} 

MyNfcAdapter.setNdefPushMessageCallback(new myCallback, activity, activities); 
+0

Вот что я наконец сделал. Я думаю, что это лучшее решение для того, что я хотел. Я пробовал на Android-устройстве без NFC, другой с NFC, но уровень API менее 14, и другое устройство с уровнем API 14, и оно работает так, как оно есть на всех устройствах. Большое спасибо! – zapotec

Смежные вопросы