News api for android

There are several news APIs available for Android that you can use to fetch news articles and display them in your app. Here are a few popular ones:

  1. News API (https://newsapi.org/): This API provides access to news articles from over 80,000 sources, including major news outlets like CNN, BBC, and Al Jazeera. It offers a free tier with 100 requests per day.
  2. The Guardian API (https://open.guardianproject.info/): The Guardian offers an API that provides access to its news articles, including articles from its opinion and analysis sections. The API is free to use, but you'll need to register for an API key.
  3. New York Times API (https://developer.nytimes.com/): The New York Times offers an API that provides access to its news articles, including articles from its opinion and analysis sections. The API is free to use, but you'll need to register for an API key.
  4. Google News API (https://news.google.com/news/): Google offers an API that provides access to its news articles, including articles from its opinion and analysis sections. The API is free to use, but you'll need to register for an API key.
  5. AP News API (https://apnews.com/): The Associated Press offers an API that provides access to its news articles, including articles from its opinion and analysis sections. The API is free to use, but you'll need to register for an API key.
  6. Newsstand API (https://newsstand.io/): Newsstand is a news aggregator API that provides access to news articles from over 10,000 sources. It offers a free tier with 100 requests per day.
  7. Nuzzel API (https://nuzzel.com/): Nuzzel is a news aggregator API that provides access to news articles from over 10,000 sources. It offers a free tier with 100 requests per day.

To use any of these APIs in your Android app, you'll need to:

  1. Register for an API key or sign up for a free tier.
  2. Import the API's SDK or library into your Android project.
  3. Make API requests to fetch news articles and parse the response data.
  4. Display the news articles in your app's UI.

Here's an example of how you might use the News API in your Android app:

import android.os.Bundle;
import android.widget.ListView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;

import org.json.JSONArray;
import org.json.JSONObject;

public class NewsActivity extends AppCompatActivity {

    private ListView listView;
    private RequestQueue requestQueue;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_news);

        listView = findViewById(R.id.listView);
        requestQueue = Volley.newRequestQueue(this);

        String url = "https://newsapi.org/v2/top-headlines?country=us&apiKey=YOUR_API_KEY";

        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                try {
                    JSONArray articles = response.getJSONArray("articles");
                    for (int i = 0; i < articles.length(); i++) {
                        JSONObject article = articles.getJSONObject(i);
                        String title = article.getString("title");
                        String description = article.getString("description");
                        // Display the article title and description in your UI
                    }
                } catch (Exception e) {
                    Toast.makeText(NewsActivity.this, "Error: " + e.getMessage(), Toast.LENGTH_SHORT).show();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(NewsActivity.this, "Error: " + error.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });

        requestQueue.add(jsonObjectRequest);
    }
}

Remember to replace YOUR_API_KEY with your actual API key from the News API or other API you're using.