Я пытаюсь смоделировать тег NFC с помощью инструмента для разработки приложений в приложении.Текущая реализация использует отражение и нацелена на API 27. При переходе на API 28 с AndroidX метод createMockTag
не найден.Я заметил, что в коде Android это public static
, но помечено @Hide
, что означает, что я не могу получить к нему доступ.Однако я нашел способ создать метку из посылки, но я нигде не нашел простого способа сделать это.Я могу создать свой собственный класс Parcelable, но при вызове in.readInArray(...)
в конструкторе он запрашивает параметр, которого у меня нет.Я приложу то, на что это похоже, знаю, и как я хотел бы, чтобы это выглядело.
Это большая проблема, потому что нам нужно высмеивать теги NFC, но, похоже, нет способа получить доступ к методу.И я также пытался скопировать класс Tag.java
в свой проект, но он не может получить доступ к некоторым, казалось бы, внутренним классам, таким как INfcTag
и перечисления в TagTechnology
.Кто-нибудь еще сталкивался с этим и может, пожалуйста, помочь мне?Спасибо.
// Tag mockTag = Tag.CREATOR.createFromParcel(); // I'd like to create one here
Method createMockTag = Tag.class.getMethod("createMockTag", byte[].class, int[].class, Bundle[].class);
scanIntent.putExtra(NfcAdapter.EXTRA_TAG, (Tag) createMockTag.invoke(Tag.class, tagId, new int[]{}, new Bundle[]{}));
Вот ссылки, на которые я смотрел: