Отображение Live Wallpaper в целевом приложении 1.6, определяя, является ли оно устройством 2.1? - PullRequest
2 голосов
/ 02 апреля 2010

Мы создаем приложение для Android с целевым SDK 1.6, поэтому оно будет работать на устройствах 1.6 и выше. Мы хотели бы поддерживать живые обои, которые, как мы знаем, только 2.1+. Есть ли способ создать одно приложение с 1.6 SDK в качестве цели, но определить, является ли устройство, на котором оно работает, 2.1, и только в этом сценарии вызвать API живых обоев.

Мы стараемся избегать создания отдельных версий 1.6 и 2.1 и хотели бы иметь возможность поддерживать живые обои только для устройств 2.1. Итак, чтобы быть ясным - 1 приложение, которое может поддерживать 1.6 и выше и поддерживать живые обои для устройств 2.1.

Есть ли способ сделать это?

1 Ответ

2 голосов
/ 02 апреля 2010

Может быть. Я не работал с Live Wallpapers, но вот как я использую AccountManager на 2. *, но у меня есть запасной вариант на 1. *, где он недоступен.

Я строю с 2.1 SDK, но мой Манифест заявляет

<uses-sdk android:minSdkVersion="3" />

Это позволяет приложению работать на 1.5 устройствах и выше.

Я ограничиваю свое использование android.accounts.AccountManager классом-оболочкой, я назвал его UserEmailFetcher.

Этот класс можно будет использовать на устройствах 2. *. Однако на более ранних устройствах java.lang.VerifyError будет запускаться при первом обнаружении этого класса в коде. Это я ловлю и выполняю некоторые запасные действия.

String name;
try {
   name = UserEmailFetcher.getEmail(this); 
} catch (VerifyError e) {
   // Happens if the AccountManager is not available (e.g. 1.x)
}

Надеюсь, это поможет.

...