如何在android中获取应用程序名称?

时间:2017-01-19 11:48:30

标签: android

在设备中安装应用程序并成功完成后。我必须得到该应用程序包名称,并从包名称我必须标识“应用程序名称”。我怎么能这样做

代码: -

private String TAG = CAppReceiver.class.getSimpleName();
@Override
public void onReceive(Context context, Intent intent) {
    String action = intent.getAction();
    if (action.equals("android.intent.action.PACKAGE_ADDED")){
        Log.d(TAG,"App package::" + intent.getData().toString());
    }
}

4 个答案:

答案 0 :(得分:1)

 String pakageName =getPackageName();
 String[] separated = pakageName.split(".");
 separated[0]; 
 separated[1];  

听取获取应用程序名称的代码,首先获取软件包名称,然后将其拆分以获取应用程序名称。

答案 1 :(得分:0)

在您的清单中,添加一个带有相关意图服务的接收器(在应用程序内部标签中):

<receiver android:name=".apps.AppListener">
    <intent-filter android:priority="100">
         <action android:name="android.intent.action.PACKAGE_INSTALL"/>
         <data android:scheme="package"/> 
    </intent-filter>
</receiver>

根据谷歌文档:

  

PACKAGE_INSTALL广播行动:新的   应用程序包已安装在设备上。数据   包含包的名称。注意新安装的   包裹不接收此广播。

然后使用onReceive代码方法。

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class AppListener extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent arg1) {
    // TODO Auto-generated method stub
    Log.v(TAG, "there is a broadcast");
    }
}

答案 2 :(得分:0)

使用以下方法获取应用程序包名称。

intent.getData().getSchemeSpecificPart()

并使用以下代码获取其他特定于应用程序的信息。

 try {
    ApplicationInfo app = this.getPackageManager().getApplicationInfo("com.example.name", 0);        

    Drawable icon = packageManager.getApplicationIcon(app);
    String name = packageManager.getApplicationLabel(app);
    return icon;
} catch (NameNotFoundException e) {
    Toast toast = Toast.makeText(this, "error in getting icon", Toast.LENGTH_SHORT);
    toast.show();
    e.printStackTrace();
}

答案 3 :(得分:0)

如果您有包裹名称,则可以获取您的应用名称或应用标签。这是如何

PackageManager packageManager= getApplicationContext().getPackageManager();
String appName = (String) packageManager.getApplicationLabel(packageManager.getApplicationInfo("YourPackageName", PackageManager.GET_META_DATA));