检查用户设备上是否安装了 Twitter 应用程序。

6
在我的项目中,我想要将我的应用与 Twitter 连接。它首先会检查用户设备上是否存在 Twitter 应用程序,如果是,则仅从那里获取凭据,否则此按钮将被禁用。
请给我建议。

Android Intent for Twitter application 安卓Twitter应用的意图 - Adil Soomro
3个回答

8
您可以使用这个方法来检查官方的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库来管理用户身份验证。如果它被安装了,则无法从应用程序中提取数据,这不是一个选项


好的。那我可以开始启动该应用程序进行身份验证吗? - Avinash Kumar Pankaj
@AvinashKumarPankaj:实际上,认证将在浏览器中完成。它可以是您应用程序中的“WebView”,或者您可以让用户选择他所选择的浏览器(_从他设备上安装的浏览器中选择_)来完成认证过程。但与Facebook SSO不同,Twitter应用程序不参与此过程。 - Siddharth Lele
非常有用的回复,如果对任何人有用,我在下面的链接中使用了这个代码:https://github.com/lararufflecoles/KittyCatImageGenerator/blob/master/app/src/main/java/es/rufflecol/lara/kittycatimagegenerator/MainActivity.java - Lara Ruffle Coles
@LaraRuffleColes:谢谢。很高兴能够帮忙。我访问了GitHub链接,并想提出一个快速建议。不要在其中包含我所假设的真实Twitter API密钥和秘密。;-) - Siddharth Lele
我已经考虑过了,谢谢,我决定对我的小应用程序来说这不是什么大问题。:-)。 - Lara Ruffle Coles

3
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 ){
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接