2013-06-19 3 views
7

У меня есть проблема с долей twitter через намерение.Закрытая акция по умолчанию для Android Twitter

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

Является ли Twitter строгой долей по умолчанию в android? или нужно использовать их SDK.

Это мой код по умолчанию щебет share.can у ребят любая идея, дайте мне знать ...

попробовать

{

Intent shareIntent = ShareCompat.IntentBuilder 
    .from(Activity.this).setType("text/plain") 
    .setText("Shopup" + review).getIntent() 
    .setPackage("com.twitter.android"); 
    startActivity(shareIntent); 

    } catch (Exception e) 
    { 
    // TODO: handle exception 
     Toast.makeText(Activity.this, "Need twitter application", 
              Toast.LENGTH_SHORT).show(); 

    } 

ответ

2

Это то, что я делаю, чтобы разделить вещи с twitter:

tweetButton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      initShareIntentTwi("twi"); 
     } 
    }); 

private void initShareIntentTwi(String type) { 
    boolean found = false; 
    Intent share = new Intent(android.content.Intent.ACTION_SEND); 
    share.setType("text/plain"); 

    // gets the list of intents that can be loaded. 
    List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(
      share, 0); 
    if (!resInfo.isEmpty()) { 
     for (ResolveInfo info : resInfo) { 
      if (info.activityInfo.packageName.toLowerCase().contains(type) 
        || info.activityInfo.name.toLowerCase().contains(type)) { 
       share.putExtra(Intent.EXTRA_TEXT, title + " " 
         + shorturl); 
       share.setPackage(info.activityInfo.packageName); 
       found = true; 
       break; 
      } 
     } 
     if (!found) { 
      AlertDialog.Builder builder = new AlertDialog.Builder(this); 
      builder.setTitle("Twitter"); 

      LinearLayout wrapper = new LinearLayout(this); 
      WebView webView = new WebView(this); 
      EditText keyboardHack = new EditText(this); 

      keyboardHack.setVisibility(View.GONE); 

      webView.loadUrl("https://twitter.com/intent/tweet?status=" 
        + titulo + "%20" + shorturl); 

      webView.setWebViewClient(new WebViewClient() { 
       @Override 
       public boolean shouldOverrideUrlLoading(WebView view, 
         String url) { 
        view.loadUrl(url); 
        return true; 
       } 
      }); 

      wrapper.setOrientation(LinearLayout.VERTICAL); 
      wrapper.addView(webView, 
        LinearLayout.LayoutParams.MATCH_PARENT, 
        LinearLayout.LayoutParams.MATCH_PARENT); 
      wrapper.addView(keyboardHack, 
        LinearLayout.LayoutParams.MATCH_PARENT, 
        LinearLayout.LayoutParams.WRAP_CONTENT); 

      builder.setView(wrapper); 

      builder.setNegativeButton("Close", 
        new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialog, int id) { 
         } 
        }); 

      builder.create().show(); 

      return; 
     } 
     startActivity(Intent.createChooser(share, "Select")); 
    } 
} 

Если у пользователя есть приложения Twitter, это откроет его, и если это не так, откройте диалоговое окно предупреждения с веб-просмотром, содержащим следующее: «https://twitter.com/intent/tweet?status=» плюс текст, который вы хотите разделить. Вы можете проигнорировать эту часть, если хотите, и просто показать диалоговое окно с предупреждением о приложении или что-то вроде этого.

+1

Спасибо за ваш ответ, я следил за вашим дефолтом по щебетать по щебетать своим рабочим огромным спасибо! ... –

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