2011-09-21 73 views
0

今天這個 Open Twitter app from other app and load some page 的代碼是從該職位運行Twitter應用程序從我的應用程序中打開我尋覓了具體的Twitter賬號

try{ 
      Intent intent = new Intent(Intent.ACTION_SEND); 
      intent.putExtra(Intent.EXTRA_TEXT, "this is a tweet"); 
      intent.setType("text/plain"); 
      final PackageManager pm = getPackageManager(); 
      final List<?> activityList = pm.queryIntentActivities(intent, 0); 
      int len = activityList.size(); 
      for (int i = 0; i < len; i++) { 
       final ResolveInfo app = (ResolveInfo) activityList.get(i); 
       if ("com.twitter.android.PostActivity".equals(app.activityInfo.name)) { 
        final ActivityInfo activity=app.activityInfo; 
        final ComponentName name=new ComponentName(activity.applicationInfo.packageName, activity.name); 
        intent.addCategory(Intent.CATEGORY_LAUNCHER); 
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 
        intent.setComponent(name); 
        startActivity(intent); 
        break; 
       } 
      } 
     } 
     catch(final ActivityNotFoundException e) { 
      Log.i("twitter", "no twitter native",e); 
     } 

及其工作完美。

我的問題是,如果我可以在此代碼中插入某些內容來打開特定的Twitter帳戶,例如從我的網站打開Twitter帳戶。

感謝

UPDATE

myWebView = (WebView) findViewById(R.id.webview); // Create an instance of WebView and set it to the layout component created with id webview in main.xml 
     myWebView.getSettings().setJavaScriptEnabled(true); 
     myWebView.loadUrl("https://mobile.twitter.com/XXXXXXXXXXXX"); // Specify the URL to load when the application starts 
     //myWebView.loadUrl("file://sdcard/"); // Specify a local file to load when the application starts. Will only load file types WebView supports 
     myWebView.setWebViewClient(new WebViewKeep()); 
     myWebView.setInitialScale(1); // Set the initial zoom scale 
     myWebView.getSettings().setBuiltInZoomControls(true); // Initialize zoom controls for your WebView component 
     myWebView.getSettings().setUseWideViewPort(true); // Initializes double-tap zoom control 
     myWebView.getSettings().setUserAgentString("blablabla"); 

回答

0

所以,你想在移動官方Twitter應用程序打開特定用戶的Twitter信息中?

很可能可能,但需要一些逆向工程,爲移動應用沒有定義正式的集成點:

  • 讓您的PC上的官方Twitter應用的APK。您可以使用,例如,應用程序備份工具ASTRO file manager打包應用到.apk文件,然後從SD卡複製到APK PC
  • 解碼APK與apktool
  • 在解碼AndroidManifest.xml文件展望會給你的IDEA文件要啓動
  • 看着.smali文件會告訴你什麼意圖額外的參數被用於傳遞帳戶名活動

類似的事情可以像Seesmic的其他Twitter客戶端來完成,TweetDeck的等,這些活動 但是這種做法很冒險和脆弱!

  • 它依賴於官方Twitter的應用程序被安裝在設備上
  • 官方應用程序的內部工作能夠而且將會版本之間的變化,這些變化將破壞你的代碼

這裏有兩個備選方案:

  • 直接用戶到Twitter的移動網站,在,比如只需打開手機瀏覽器, 「http://mobile.twitter.com/cocacola」
  • 如果您想要良好地控制tweet流的外觀,請從您的活動中以JSON格式加載推文,並自行顯示它們。通過這種方式,你可以完全控制它們的外觀,但是你不會像在移動網站上那樣獲得每個推文的「回覆」,「轉推」等功能。
+0

我工作過的第一個選擇是你有寫(在做之前)和它的罰款,但我已經找到了上面的代碼之後。可能我會深入瞭解它,但目前我正在尋找一個簡單的解決方案。謝謝 – Christopher

+0

我已經通過另一種方式解決了它,使用webview打開我的twitter acoount,你只需要在webview的末尾添加這個「myWebView.getSettings()。setUserAgentString(」blablabla「);」。 – Christopher

相關問題