【问题标题】:check to see if twitter app is present on user's device检查用户设备上是否存在 twitter 应用程序
【发布时间】:2013-05-11 05:00:23
【问题描述】:

在我的项目中,我想将我的应用程序与 twitter 连接起来。它将首先检查用户设备上是否存在 twitter 应用程序,如果是,它将从那里获取凭据,否则此按钮将被禁用。

建议我。

【问题讨论】:

标签: android


【解决方案1】:

您可以使用它来检查是否安装了官方 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 在您自己的应用程序中管理用户身份验证。从应用中提取数据(如果已安装)只是不是一种选择

【讨论】:

  • 哦。那我可以启动该应用程序进行身份验证吗??
  • @AvinashKumarPankaj:实际上,身份验证将在浏览器中完成。它可以是您的应用程序中的WebView,或者您可以让用户选择他选择的浏览器(从他设备上安装的浏览器中)来完成身份验证过程。但与 Facebook SSO 不同的是,Twitter 应用程序不参与此过程。
  • 非常有帮助的回复,如果对任何人有用的话,我对这段代码的使用在下面的链接中:github.com/lararufflecoles/KittyCatImageGenerator/blob/master/…
  • @LaraRuffleColes:谢谢。很高兴能帮上忙。我确实访问了 GitHub 链接,并想提出一个快速的建议。不要包括,我假设的是,真正的 Twitter API 密钥和秘密。 ;-)
  • 我已经考虑过了,谢谢,决定这对我的小应用程序来说没什么大不了的。 :-)。
【解决方案2】:
try{
    ApplicationInfo info = getPackageManager().
            getApplicationInfo("com.twitter.android", 0 );
    return true;
} catch( PackageManager.NameNotFoundException e ){
    return false;
}

这将检查Twitter的官方应用是否已安装

【讨论】:

    【解决方案3】:
    boolean twitterInstalled = false;
    
        try{
            ApplicationInfo info = getPackageManager().
                    getApplicationInfo("com.twitter.android", 0 );
            twitterInstalled = true;
        } catch( PackageManager.NameNotFoundException e ){
        }
    

    【讨论】:

      猜你喜欢
      • 2012-12-12
      • 1970-01-01
      • 2021-04-03
      • 1970-01-01
      • 1970-01-01
      • 2012-01-05
      • 1970-01-01
      • 1970-01-01
      • 2014-06-08
      相关资源
      最近更新 更多