2011-04-08 61 views
6

thể trùng lặp:
Android Intent for Twitter applicationBắt đầu twitter ứng dụng

Tôi muốn đi theo trang từ ứng dụng Android của tôi và tôi muốn điều này được thực hiện bằng cách bắt đầu ứng dụng twitter bản địa.

Làm cách nào tôi có thể thực hiện việc này và cũng có thể nếu một ứng dụng khách twitter không có trong điện thoại di động của người dùng, bạn nên truy cập trang web di động của twitter.

Trả lời

5

Để kiểm tra xem một Intent tồn tại thử điều này:

public static boolean isIntentAvailable(Context context, String action) { 
    final PackageManager packageManager = context.getPackageManager(); 
    final Intent intent = new Intent(action); 
    List<ResolveInfo> list = 
      packageManager.queryIntentActivities(intent, 
        PackageManager.MATCH_DEFAULT_ONLY); 
    return list.size() > 0; 
} 

(source)

Đối với séc twitter đoạn này:

Intent tweetIntent = new Intent(Intent.ACTION_SEND); 
tweetIntent.putExtra(Intent.EXTRA_TEXT, "Test tweet"); 
tweetIntent.setType("application/twitter"); 

(source)

+0

ok..so bối cảnh ở đây là gì? – AutoMEta

+2

No..tweetIntetnt is not working .. Tôi nhận được điều này khi tôi bắt đầu này. hoàn thành hành động bằng cách gửi qua Bluetooth, Dropbox, Gmail – AutoMEta

+0

Kiểm tra nguồn thứ 2 để biết thêm thông tin về tweetIntent –

4

Từ thử nghiệm của mình, tôi không thể tìm được cách tốt để làm điều này, và thay vào đó là giải pháp không nhất thiết phải là 'thực hành tốt nhất'. Nó chỉ hoạt động với ứng dụng twitter chính thức chứ không phải với các ứng dụng khác. Giải pháp này sẽ thất bại nếu ứng dụng chính thức thay đổi API nội bộ của nó. Vì vậy, hãy thận trọng khi sử dụng giải pháp này và biết những hạn chế của nó.

Mã này không được viết theo cách tốt, nhưng nó hoạt động. Lời khuyên của tôi là thay đổi nó để không sử dụng quá nhiều tài nguyên.

Mã kiểm tra xem liệu ứng dụng Twitter đã được cài đặt chưa. Nếu có, ứng dụng Twitter sẽ được khởi chạy; nếu không, trình duyệt được khởi chạy.

Twitter có tên twitter (cũng tên là screen_name) và id twitter: chúng không giống nhau.

//Checking If the app is installed, according to the package name 
     Intent intent = new Intent(); 
     intent.setType("text/plain"); 
     intent.setAction(Intent.ACTION_SEND); 
     final PackageManager packageManager = getPackageManager(); 
     List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); 

     for (ResolveInfo resolveInfo : list) 
     { 
      String packageName = resolveInfo.activityInfo.packageName; 

      //In case that the app is installed, lunch it. 
      if (packageName != null && packageName.equals("com.twitter.android")) 
      { 
       try 
       { 
        String formattedTwitterAddress = "twitter://user/" ; 
        Intent browseTwitter = new Intent(Intent.ACTION_VIEW, Uri.parse(formattedTwitterAddress)); 
            long twitterId = <Here is the place for the twitter id> 
        browseTwitter.putExtra("user_id", twitterId); 
        startActivity(browseTwitter); 

        return; 
       } 
       catch (Exception e) 
       { 

       } 
      } 
     } 

     //If it gets here it means that the twitter app is not installed. Therefor, lunch the browser. 
     try 
     { 
          String twitterName = <Put the twitter name here> 
      String formattedTwitterAddress = "http://twitter.com/" + twitterName; 
      Intent browseTwitter = new Intent(Intent.ACTION_VIEW, Uri.parse(formattedTwitterAddress)); 
      startActivity(browseTwitter); 
     } 
     catch (Exception e) 
     { 

     } 
+0

Kể từ phiên bản cuối cùng của ứng dụng Twitter 3.0.0 vào ngày 9 tháng 12 năm 2011, ứng dụng twitter chính thức hỗ trợ cơ chế ý định thường xuyên. Tất cả những gì bạn cần làm là sử dụng ý định thường xuyên cho trình duyệt, trong trường hợp đó sẽ là địa chỉ hợp lệ của twitter, ứng dụng chính thức được đăng ký là một trong những người giải quyết mục đích này. – nheimann1

5

Kể từ phiên bản cuối cùng của ứng dụng Twitter 3.0.0 vào ngày 9 tháng 12 năm 2011, ứng dụng twitter chính thức hỗ trợ cơ chế ý định thường xuyên. Tất cả những gì bạn cần làm là sử dụng ý định thường xuyên cho trình duyệt, trong trường hợp đó sẽ là địa chỉ hợp lệ của twitter, ứng dụng chính thức được đăng ký là một trong những người giải quyết mục đích này.

... chỉ cần sao chép và dán bình luận của goBeepit dev vì làm việc cho tôi, android yêu cầu bạn cho mở trong trình duyệt hoặc ứng dụng twitter, những gì tôi đã sử dụng nó chỉ này

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/norman784")); 
startActivity(intent); 
Các vấn đề liên quan