2013-05-16 53 views
5

在我的項目中,我想將我的應用與twitter關聯。它將首先檢查用戶設備上是否存在Twitter應用程序,如果是,則會從其中取得憑據,否則此按鈕將被禁用。檢查用戶設備上是否有twitter應用

建議我。

+0

[Android Intent for Twitter應用程序](http://stackoverflow.com/q/2077008/593709) –

回答

7

您可以使用此功能來檢查是否安裝了官方Twitter應用程序:

PackageManager pkManager = activity.getPackageManager(); 
try { 
    PackageInfo pkgInfo = pkManager.getPackageInfo("com.twitter.android", 0); 
    String getPkgInfo = pkgInfo.toString(); 

    if (getPkgInfo.equals("com.twitter.android")) { 
     // APP NOT INSTALLED 
    } 
} catch (NameNotFoundException e) { 
    e.printStackTrace(); 

    // APP NOT INSTALLED 

} 

然而,即使已安裝,您也無法從其中取出任何憑據以在您的應用程序中使用。您需要登錄Twitter4J library才能在自己的應用中管理用戶身份驗證。從應用程序中提取數據(如果已安裝)只是而不是選項

+0

ohk。那麼我可以啓動該應用程序的身份驗證? –

+0

@AvinashKumarPankaj:其實,驗證將在瀏覽器中完成。它可能是您的應用中的WebView,或者您可以讓用戶選擇他自己選擇的瀏覽器(來自其設備上安裝的瀏覽器)以完成身份驗證過程。但與Facebook SSO不同,Twitter應用並未涉及此過程。 –

+0

非常有幫助的回覆,我使用這段代碼在下面的鏈接中對任何人都有用:https://github.com/lararufflecoles/KittyCatImageGenerator/blob/master/app/src/main/java/es/rufflecol/lara/ kittycatimagegenerator/MainActivity.java –

2
try{ 
    ApplicationInfo info = getPackageManager(). 
      getApplicationInfo("com.twitter.android", 0); 
    return true; 
} catch(PackageManager.NameNotFoundException e){ 
    return false; 
} 

如果安裝了Twitter的官方應用程序,這將檢查或不

1
boolean twitterInstalled = false; 

    try{ 
     ApplicationInfo info = getPackageManager(). 
       getApplicationInfo("com.twitter.android", 0); 
     twitterInstalled = true; 
    } catch(PackageManager.NameNotFoundException e){ 
    } 
相關問題