Mi piacerebbe integrare Twitter nella mia applicazione Android in modo che possa postare messaggi su Twitter.integrazione Twitter su app Android
risposta
Oltre alle scelte solide d di, si potrebbe:.
- Usa
ACTION_SEND
Intents
concreateChooser()
, e se l'utente dispone di un'applicazione Twitter installata (Twidroid) che possono utilizzarlo per aggiornare il proprio status - utilizzare un'API Twitter Java esistente, come JTwitter
ho controllato fuori solo per vedere come hai fatto l'integrazione e ho finito col scaricare. Ottimo lavoro! – SapphireSun
'ACTION_SEND' è troppo vago. Gmail e dropbox sono idonei. [Vi suggerisco di filtrare] (http://regis.decamps.info/blog/2011/06/intent-to-open-twitter-client-on-android/) l'elenco in base a nomi di pacchetti noti. – rds
eliminati un commento, aggiornato dettagli: Non faccio uso di JTwitter nella mia app Android più (e l'API di Twitter e Termini è completamente cambiato da allora, rendendo l'integrazione diretta più impegnativo). Il codice sorgente per l'applicazione che ho fatto che ha usato per fare questo, il Congresso, ha anche spostato, a: github.com/sunlightlabs/congress-android - ma non ha più l'integrazione diretta Twitter. – Konklone
Tutto ciò che è necessario sapere sulla comunicazione con Twitter è here.
Per inviare richieste HTTP dall'applicazione, vedere this guide.
Questo è come lo faccio
Prima ho fatto un dialogo per la WebView Twitter_Dialog.java
public class Twitter_Dialog extends Dialog
{
static final int BLUE = 0xFF6D84B4;
static final float[] DIMENSIONS_DIFF_LANDSCAPE =
{ 20, 60 };
static final float[] DIMENSIONS_DIFF_PORTRAIT =
{ 40, 60 };
static final FrameLayout.LayoutParams FILL = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
static final int MARGIN = 4;
static final int PADDING = 2;
static final String DISPLAY_STRING = "touch";
private String mUrl;
private ProgressDialog mSpinner;
private WebView mWebView;
private LinearLayout mContent;
private TextView mTitle;
public Twitter_Dialog(Context context, String url)
{
super(context);
mUrl = url;
}
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mSpinner = new ProgressDialog(getContext());
mSpinner.requestWindowFeature(Window.FEATURE_NO_TITLE);
mSpinner.setMessage("Loading...");
mContent = new LinearLayout(getContext());
mContent.setOrientation(LinearLayout.VERTICAL);
setUpTitle();
setUpWebView();
Display display = getWindow().getWindowManager().getDefaultDisplay();
final float scale = getContext().getResources().getDisplayMetrics().density;
int orientation = getContext().getResources().getConfiguration().orientation;
float[] dimensions = (orientation == Configuration.ORIENTATION_LANDSCAPE) ? DIMENSIONS_DIFF_LANDSCAPE : DIMENSIONS_DIFF_PORTRAIT;
addContentView(mContent, new LinearLayout.LayoutParams(display.getWidth() - ((int) (dimensions[0] * scale + 0.5f)), display.getHeight() - ((int) (dimensions[1] * scale + 0.5f))));
}
private void setUpTitle()
{
requestWindowFeature(Window.FEATURE_NO_TITLE);
Drawable icon = getContext().getResources().getDrawable(R.drawable.twitter_icon);
mTitle = new TextView(getContext());
mTitle.setText("Website");
mTitle.setTextColor(Color.WHITE);
mTitle.setTypeface(Typeface.DEFAULT_BOLD);
mTitle.setBackgroundColor(BLUE);
mTitle.setPadding(MARGIN + PADDING, MARGIN, MARGIN, MARGIN);
mTitle.setCompoundDrawablePadding(MARGIN + PADDING);
mTitle.setCompoundDrawablesWithIntrinsicBounds(icon, null, null, null);
mContent.addView(mTitle);
}
private void setUpWebView()
{
mWebView = new WebView(getContext());
mWebView.setVerticalScrollBarEnabled(false);
mWebView.setHorizontalScrollBarEnabled(false);
mWebView.setWebViewClient(new Twitter_Dialog.DialogWebViewClient());
mWebView.getSettings().setJavaScriptEnabled(true);
System.out.println(" mURL = "+mUrl);
mWebView.loadUrl(mUrl);
mWebView.setLayoutParams(FILL);
mContent.addView(mWebView);
}
private class DialogWebViewClient extends WebViewClient
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
{
super.onReceivedError(view, errorCode, description, failingUrl);
Twitter_Dialog.this.dismiss();
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon)
{
super.onPageStarted(view, url, favicon);
mSpinner.show();
}
@Override
public void onPageFinished(WebView view, String url)
{
super.onPageFinished(view, url);
String title = mWebView.getTitle();
if (title != null && title.length() > 0){
mTitle.setText(title);
if(title.equals("Twitter")){
//This will close the Dialog after tweeting
Twitter_Dialog.this.dismiss();
}
}
mSpinner.dismiss();
}
}
}
// E poi nella vostra Main.java
public class Main extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new Twitter_Dialog(Main.this,"http://twitter.com/?status="+Uri.encode("Twitter Post")).show();
}
}
codice eccellente, ma u può dirmi come postare un'immagine utilizzando questo codice – Dilip
come può Twitte il mio messaggio (il mio punteggio di gioco) su Twitter. –
Come non posso postare il massaggio su Twitter Clicca sul pulsante –
Sempre andare per le più recenti tecnologie, come l'integrazione di Twitter può essere fatto facilmente utilizzando Twitter4j, anche le API fornite da Twitter cambiano di volta in volta. Twiter SDK sarebbe una buona opzione. U can find the details for it here for twitter4j.
Prova con questo semplice client TwitterEasyClient
Basta aggiungere i permessi nel vostro manifesto
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
e usarlo in questo modo:
//setup
TwitterDialogFragment twitterDialog = new TwitterDialogFragment.Builder("message","url.com") //
.callbackUrl("http://www.website.com") //
.consumerKey("XXXXXXXXXXXXXXXXXXXXXX") //
.consumerSecret("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") //
.urlOAuth("oauth_verifier") //
.build();
//show the dialog
twitterDialog.show(getSupportFragmentManager(), TwitterDialogFragment.class.getSimpleName());
Per alcune persone che vogliono utilizzare twitter4j e DialogFragment supporta anche il cambio di orientamento check out my gist https://gist.github.com/zeroarst/10071064adcf171277f9
È possibile utilizzare Twitter Helper per integrare Twitter nell'app per Android. È molto semplice.
- 1. Integrazione Yelp su Android
- 2. App Android Vine "Accedi con Twitter"
- 3. Motore Twitter SA_OAuthTwitterEngine integrazione?
- 4. Integrazione dell'unità Google nelle app Android?
- 5. Integrazione di Facebook, Twitter, Google+ nell'app per Android tramite PhoneGap
- 6. Come rendere stile app Twitter azioni rapidi su Android
- 7. Integrazione app Android esistente a Firebase
- 8. Inizia Twitter APP
- 9. android twitter retrieveRequestToken 401 su richiesta token
- 10. Protezione chiavi di Twitter su Android
- 11. Integrazione SMP con Android
- 12. Integrazione del tema Bootswatch con Twitter-Bootstrap-Rails Gem
- 13. Worklight App Splash su Android
- 14. Integrazione Realm.io su Eclipse
- 15. Integrazione Facebook in Android?
- 16. Android Crosswalk Lite - Integrazione con Android Studio
- 17. Integrazione NDK in studio Android
- 18. Test, rilevamento dei problemi, integrazione continua: strumenti standard consigliati per le app GAE e Android
- 19. Integrazione Facebook in applicazione Android
- 20. IOAuth.IO Integrazione con Ionic/Angular Hybrid App
- 21. Verifica che l'app di Twitter abbia effettuato l'accesso su Android
- 22. integrazione paypal con app a singola pagina
- 23. Integrazione completa di python android
- 24. Integrazione VCS per Android Studio
- 25. Come condividere l'immagine http direttamente su Twitter in Android?
- 26. Studio Android: integrazione di Butterknife?
- 27. Twitter completionHandler blocca app sul successo
- 28. Twitter Fabric Login per Android
- 29. Attività di test di integrazione separata su gradle con Android
- 30. Impostazione test di integrazione nel progetto basato su Android Gradle
questo è semplice come mangiare la tua torta preferita .. seguire questo tutorial http://tech-papers.org/integrate-twitter-with-android-application/ –