2013-07-23 3 views
3

Как я могу реализовать пакеты расширения на рынке? Например, если бы я хотел, чтобы пользователи могли приобретать больше изображений, как бы я это сделал, а также чтобы основное приложение распознало и загрузило эти изображения? Есть ли какие-нибудь учебники, на которые вы можете указать мне? Я искал с помощью Google, но не нашел ничего конкретного и начинающего. Большинство из них относятся к биллингам приложений, но это не то, что я ищу.Пакеты расширения приложений для Android

+2

В Google есть целый API для покупки приложений. Посмотрите на это –

ответ

2

Вы можете использовать PackageManager для поиска пакетов расширения. Точный способ определения ваших пакетов расширения зависит от того, как вы собираетесь их использовать.

Например, если ваши пакеты расширения выполняются каким-либо образом - то есть все они имеют основное действие - тогда у вас, вероятно, будет собственное действие для намерения, и вы должны использовать PackageManager.queryIntentActivities(), чтобы предоставить вам список установленных которые могут справиться с этим действием.

Если эти пакеты расширения предоставляют только ресурсы, а не код, вы можете выбрать либо «фиктивный» компонент, который вы можете идентифицировать по намерению, как описано выше, даже если у вас нет намерения когда-либо запускать его - или вы может искать другой подход. Например, если никто, кроме вас, не будет делать эти пакеты расширения, вы можете просто идентифицировать их по имени пакета.

PackageManager pm = getPackageManager(); 
List<PackageInfo> packages = pm.getInstalledPackages(); 
for(PackageInfo package : packages) { 
    if(package.packageName.startWith("com.myapp.extension.") { 
     // found an extension package! 
     handleExtensionPackage(package); 
    } 
} 

Если вам нужно загрузить ресурс из пакета расширения, вам необходимо создать контекст для этого пакета, искать идентификатор ресурса, а затем загрузить ресурс.

Context extensionContext = createPackageContext(package.packageName, 0); 
Resources extensionResources = extensionContext.getResources(); 
int r_drawable_pic = extensionResources.getIdentifier("drawable/pic", null, package.packageName); 
Drawable remotePic = extensionResources.getDrawable(r_drawable_pic); 
+0

Большое вам спасибо! +500 !! Ты жжешь!! Это именно то, что я искал. Один вопрос, однако, как я могу это сделать, чтобы они не отображались в приложении? –

+1

В приложении отображаются только активные действия с ACTION_MAIN и CATEGORY_LAUNCHER. –

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