How to feed rss android

How to manually add an RSS feed to your podcast app on desktop, iOS & Android

Feb 3, 2017 · 3 min read

You should be able to find The Pitch Podcast easily by searching in your podcast player of choice. But occasionally you may need to add a podcast RSS feed to your favorite podcast app manually for whatever reason.

Here’s how to manually add an RSS feed to many popular podcast apps. If I am missing instructions for your favorite podcast app or if any of these instructions are wrong, let me know in the comments below or hit me up on Twitter. Thanks! 🙏

Apple Podcasts on Mac (iTunes on Windows)

Click on “File” i n the top left menu. Then select “Add a Show by URL…” from the dropdown and paste the feed URL in the pop-up window. Click “Subscribe” and voilà!

Apple Podcasts on iOS

Tap “Library” on the bottom row of icons. Then hit “Edit” on the top right, and select “Add a Show by URL…”. Then paste the feed URL and tap “Subscribe” and you’re off to the races.

Pocket Casts (iOS, Android & Web)

Paste the URL of the feed into the search field in the “Discover” tab and then hit search. Tap on the podcast that should appear in search results and then mash that “Subscribe” button.

Breaker (iOS & Android)

Tap the “Library” tab, then select the “Subscriptions” tab. Tap the “+” in the upper right and select “Add from link”. Paste the feed URL and tap done!

Overcast (iOS & Web)

Tap the “+” button in the top right like you normally would to add a podcast. Then select “Add URL” in the top right, paste the feed URL and hit done!

Castbox (iOS & Android)

Paste the feed URL into the search bar at the top of the “Discover” tab and then hit search. Then hit “Subscribe” and you’re done.

Podcast Addict (Android)

Tap the “+” icon in the top right. Then it’ll take you to the “New Podcast” screen. Then there is a second “+” button you’ll need to hit before selecting “RSS feed”. Then paste in the feed URL and tap “Add.” to finish.

On the main screen you click the + (top right) and it takes you to the “New Podcast” screen. Then there is a second + button that takes you to options including “RSS feed, …”. Click that, add the “RSS feed URL,” click “add,” and blastoff!

Downcast (iOS & Mac)

Tap “Add” on the bottom bar, press “Add Podcast Manually” and in the “Feed” field paste the URL of the RSS feed. Then hit “Subscribe” in the top right.

Podcast apps that *do not* support manual RSS

As of October 2019, it is not possible to manually add an RSS feed to Spotify, Google Podcasts, Stitcher or iHeartRadio 😔

Читайте также:  Настройка геймпад для андроид блютуз

[edit] Last updated in October 2019, let me know if I’ve missed something @joshmuccio on Twitter and I’ll get it fixed!

Источник

Простой RSS-клиент на Android

Пошаговое руководство по созданию RSS-клиента на Android. Статья для начинающих разработчиков.
Android – операционная система для мобильных устройств от Google.
Система очень перспективная и динамично развивается. Базовые навыки разработки будут совсем не лишними.
Осторожно много скриншотов!

1. Начало

Вначале нужно зайти на официальный сайт и ознакомиться с возможностями последней версии Android 2.2. На сайте есть специальный раздел для разработчиков. Тут можно скачать все необходимые инструменты, найти инструкцию по установке, инструкцию по созданию первого приложения и справку по пакетам и классам библиотеки.

2. Установка SDK

На компьютере должен быть установлен JDK версии 5 или 6. Для разработки под Android нужно скачать и установить Android SDK, в котором есть эмулятор Android. Далее нужно установить Eclipse версии 3.4 или 3.5. И последнее, нужно установить плагин ADT для Eclipse.

3. Создание RSS-клиента

За основу я взял статью Creating Rss Reader in Android. Но в статье есть ошибки, и получить рабочей приложение сразу не получится. По моей просьбе, автор выложил полный рабочий проект. Но пока шла переписка, я сам исправил ошибки и написал свою версию программы.

3.1. Создание проекта
Запускаем Eclipse, выбираем меню File->New->Project. Запускается диалог New Project, выбираем папку Android и проект Android Project, жмем Next.

Открывается окно New Android Project. Заполняем поле Project name: uRSS, Выбираем в таблице Build Target строку Android 2.2. Дальше нужно заполнить свойства проекта в разделе Properties.

Application name: uRSS.
Package name: rembo.network.urss.
RSSactivity.
Min SDK Version: 8.

Жмем Next и в следующем окне ничего не меняем и жмем Finish.

Все проект создан.

3.2. Написание кода
Eclipse создаст много папок и файлов проекта (в них легко запутаться).
Главные файлы такие:
src/rembo.network.rss/RSSactivity.java – файл с классом RSSactivity, который задает логику главного окна (тут напишем обработчики событий);
res/layout/main.xml – XML описание главного окна (тут создадим элементы управления);
AndroidManifest.xml – файл описания свойств приложения (тут свяжем XML описание с кодом и зададим разрешение на работу в сети).

Для начала зададим содержимое главного окна в файле res/layout/main.xml. Главное окно будет построено на основе контейнера LinearLayout. Оно содержит надпись TextView, поле для ввода текста EditText, кнопку Button и список ListView. Обратите внимание, что у каждого элемента есть android:id. Это идентификатор по которому с элементом интерфейса можно связаться из кода.

xml version =»1.0″ encoding =»utf-8″ ? >
LinearLayout xmlns:android =»http://schemas.android.com/apk/res/android»
android:orientation =»vertical»
android:layout_width =»fill_parent»
android:layout_height =»fill_parent»
>

TextView
android:id =»@+id/label»
android:layout_width =»fill_parent»
android:layout_height =»wrap_content»
android:text =»Enter RSS URL:»
/>

EditText
android:id =»@+id/rssURL»
android:layout_width =»fill_parent»
android:layout_height =»wrap_content»
android:background =»@android:drawable/editbox_background»
android:text =»http://feeds.feedburner.com/MicrosoftUserGroupVinnitsya»
/>

Button
android:id =»@+id/fetchRss»
android:layout_width =»wrap_content»
android:layout_height =»wrap_content»
android:layout_marginRight =»10dip»
android:text =»Fetch Rss»/>

ListView
android:id =»@+id/rssListView»
android:layout_width =»fill_parent»
android:layout_height =»wrap_content»/>
LinearLayout >

* This source code was highlighted with Source Code Highlighter .

Для элемента списка нужно задать содержимое. Для этого создайте файл res/layout/list_item.xml.

xml version =»1.0″ encoding =»utf-8″ ? >
TextView
xmlns:android =»http://schemas.android.com/apk/res/android»
android:layout_width =»fill_parent»
android:layout_height =»fill_parent»
android:padding =»10dp»
android:textSize =»13sp»
android:autoLink =»all» >
TextView >

* This source code was highlighted with Source Code Highlighter .

При нажатии на элемент списка, новость должна открыться в новом окне. Создадим файл res/layout/rss_item_displayer.xml для этого окна.

xml version =»1.0″ encoding =»utf-8″ ? >
LinearLayout
xmlns:android =»http://schemas.android.com/apk/res/android»
android:layout_width =»fill_parent»
android:layout_height =»fill_parent»
android:orientation =»vertical»
>

TextView
android:id =»@+id/titleTextView»
android:text =»Title:»
android:layout_width =»fill_parent»
android:layout_height =»wrap_content»
android:padding =»10dp»
android:textSize =»13sp»
android:autoLink =»all»
/>

Читайте также:  Лучшие андроид смартфоны до 40000

TextView
android:id =»@+id/contentTextView»
android:text =»Content:»
android:layout_width =»fill_parent»
android:layout_height =»wrap_content»
android:textSize =»13sp»
android:autoLink =»all»
/>

LinearLayout >

* This source code was highlighted with Source Code Highlighter .

Итак, интерфейс создан. Теперь нужно писать код. Создаем новый класс RssItem в файле src/rembo.network.rss/RssItem.java. Класс получает RSS содержимое из Интернета.

package rembo.network.urss;
import java.util.*;
import java.text.*;
import java.net.*;
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;

public class RssItem <

private String title;
private String description;
private Date pubDate;
private String link;

public RssItem( String title, String description, Date pubDate, String link) <
this .title = title;
this .description = description;
this .pubDate = pubDate;
this .link = link;
>

public String getTitle()
<
return this .title;
>

public String getLink()
<
return this .link;
>

public String getDescription()
<
return this .description;
>

public Date getPubDate()
<
return this .pubDate;
>

@Override
public String toString() <

SimpleDateFormat sdf = new SimpleDateFormat( «MM/dd — hh:mm:ss» );

String result = getTitle() + » ( » + sdf.format( this .getPubDate()) + » )» ;
return result;
>

public static ArrayList getRssItems( String feedUrl) <

ArrayList rssItems = new ArrayList ();

RssItem rssItemT = new RssItem( «MSUG news» , «Best IT news.» ,
new Date(), «http://msug.vn.ua/» );

try <
//open an URL connection make GET to the server and
//take xml RSS data
URL url = new URL(feedUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();

if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) <
InputStream is = conn.getInputStream();

//DocumentBuilderFactory, DocumentBuilder are used for
//xml parsing
DocumentBuilderFactory dbf = DocumentBuilderFactory
.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();

//using db (Document Builder) parse xml data and assign
//it to Element
Document document = db.parse( is );
Element element = document.getDocumentElement();

//take rss nodes to NodeList
NodeList nodeList = element.getElementsByTagName( «item» );

if (nodeList.getLength() > 0) <
for ( int i = 0; i //take each entry (corresponds to tags in
//xml data

Element entry = (Element) nodeList.item(i);

Element _titleE = (Element) entry.getElementsByTagName(
«title» ).item(0);
Element _descriptionE = (Element) entry
.getElementsByTagName( «description» ).item(0);
Element _pubDateE = (Element) entry
.getElementsByTagName( «pubDate» ).item(0);
Element _linkE = (Element) entry.getElementsByTagName(
«link» ).item(0);

String _title = _titleE.getFirstChild().getNodeValue();
String _description = _descriptionE.getFirstChild().getNodeValue();
Date _pubDate = new Date(_pubDateE.getFirstChild().getNodeValue());
String _link = _linkE.getFirstChild().getNodeValue();

//create RssItemObject and add it to the ArrayList
RssItem rssItem = new RssItem(_title, _description,
_pubDate, _link);

>
> catch (Exception e) <
e.printStackTrace();
>

>

* This source code was highlighted with Source Code Highlighter .

Теперь создадим класс RssItemDisplayer в файле src/rembo.network.rss/RssItemDisplayer.java. Он отвечает за логику окна, которое показывает полный текст новости. Обратите внимание как по id элемента управления его получают в коде TextView titleTv = (TextView)findViewById(R.id.titleTextView);

package rembo.network.urss;
import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
import java.util.*;
import java.text.*;
import java.net.*;
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import android.view.*;
public class RssItemDisplayer extends Activity <
@Override
public void onCreate(Bundle savedInstanceState) <
super.onCreate(savedInstanceState);
setContentView(R.layout.rss_item_displayer);

RssItem selectedRssItem = RSSactivity.selectedRssItem;
//Bundle extras = getIntent().getExtras();
TextView titleTv = (TextView)findViewById(R.id.titleTextView);
TextView contentTv = (TextView)findViewById(R.id.contentTextView);

String title = «» ;
SimpleDateFormat sdf = new SimpleDateFormat( «MM/dd — hh:mm:ss» );
title = «\n» + selectedRssItem.getTitle() + » ( »
+ sdf.format(selectedRssItem.getPubDate()) + » )\n\n» ;

String content = «» ;
content += selectedRssItem.getDescription() + «\n»
+ selectedRssItem.getLink();

titleTv.setText(title);
contentTv.setText(content);
>
>

* This source code was highlighted with Source Code Highlighter .

Теперь пишем код класса RSSactivity в файле src/rembo.network.rss/ RSSactivity.java.java. Он отвечает за логику главного окна. Обратите внимание как создаются обработчики событий для клика по кнопке и по элементу списка fetchRss.setOnClickListener(new View.OnClickListener()…

Читайте также:  Android debug bridge удалить пароль

import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
import java.util.*;
import java.text.*;
import java.net.*;
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import android.view.*;
import android.view.View;
import android.widget.*;
import android.content.*;

public class RSSactivity extends Activity <

public static RssItem selectedRssItem = null ;
String feedUrl = «» ;
ListView rssListView = null ;
ArrayList rssItems = new ArrayList ();
ArrayAdapter aa = null ;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) <
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// get textview from our layout.xml
final TextView rssURLTV = (TextView) findViewById(R.id.rssURL);

// get button from layout.xml
Button fetchRss = (Button) findViewById(R.id.fetchRss);

// define the action that will be executed when the button is clicked.
fetchRss.setOnClickListener( new View.OnClickListener() <

//@Override
public void onClick(View v) <
feedUrl = rssURLTV.getText().toString();
//TextView TVtitle=(TextView)findViewById(R.id.label);
//CharSequence cs=»fetching»;
//TVtitle.setText(cs);
aa.notifyDataSetChanged();
refressRssList();
//cs=»Feed:»;
//TVtitle.setText(cs);
>
>);

// get the listview from layout.xml
rssListView = (ListView) findViewById(R.id.rssListView);
// here we specify what to execute when individual list items clicked
rssListView.setOnItemClickListener( new AdapterView.OnItemClickListener() <

//@Override
public void onItemClick(AdapterView av, View view, int index,
long arg3) <
selectedRssItem = rssItems. get (index);

// we call the other activity that shows a single rss item in
// one page
Intent intent = new Intent(
«rembo.network.urss.displayRssItem» );
startActivity(intent);
>
>);

//adapters are used to populate list. they take a collection,
//a view (in our example R.layout.list_item
aa = new ArrayAdapter ( this , R.layout.list_item, rssItems);
//here we bind array adapter to the list
rssListView.setAdapter(aa);
feedUrl = rssURLTV.getText().toString();
refressRssList();
>

private void refressRssList() <

ArrayList newItems = RssItem.getRssItems(feedUrl);

//TextView TVtitle=(TextView)findViewById(R.id.label);
//CharSequence cs=»0″;
//if(newItems.size()>0) cs=»is 1″;
//if(newItems.size()>5) cs=»is 5″;
///TVtitle.setText(cs);

>

* This source code was highlighted with Source Code Highlighter .

Остался последний штрих. Нужно связать интерфейс и код в файле AndroidManifest.xml и разрешить приложению выход в Интернет.

xml version =»1.0″ encoding =»utf-8″ ? >
manifest xmlns:android =»http://schemas.android.com/apk/res/android»
package =»rembo.network.urss»
android:versionCode =»1″
android:versionName =»1.0″ >
application android:icon =»@drawable/icon» android:label =»@string/app_name» >
activity android:name =».RSSactivity»
android:label =»@string/app_name» >
intent-filter >
action android:name =»android.intent.action.MAIN»/>
category android:name =»android.intent.category.LAUNCHER»/>
intent-filter >
activity >
activity android:name =».RssItemDisplayer» android:label =»Display Rss Item» >
intent-filter >
action android:name =»rembo.network.urss.displayRssItem»/>
category android:name =»android.intent.category.DEFAULT» > category >
intent-filter >
activity >

application >
uses-permission android:name =»android.permission.INTERNET»/>

manifest >

* This source code was highlighted with Source Code Highlighter .

3.3. Запуск
Пора запускать наше приложение. Но вначале нужно создать виртуальную машину. Для этого в Eclipse переходим в меню Window->Android SDK and AVD Manager.

Жмем New и выбираем свойства виртуальной машины. В разделе Hardware обязательно нужно добавить GSM modem, поддержку Touchscreeen, Device ram size и Max VM application heap size (при такой конфигурации устройство удачно подключается к Интернету). Жмем Create AVD (тут придется немного подождать).

Жмем кнопку старт и запускаем виртуальную машину. Тут нужно запастись терпением. Ждать придется минут 10-20, пока машина не загрузится. Убедитесь, что виртуальное устройство подключено к Интернету. Если нет, то попробуйте перегрузиться или создать новую машину.

После запуска виртуальной машины переходим в Eclipse и запускаем приложение (жмем Run). Снова придется подождать минут 5, пока приложение установится на виртуальную машину и запустится. Если приложение не запускается, то попробуйте выключить виртуальную машину и запустить приложение (тут уже придется долго ждать, пока виртуальная машина стартует снова).

Источник

Оцените статью