在设备中安装应用程序并成功完成后。我必须得到该应用程序包名称,并从包名称我必须标识“应用程序名称”。我怎么能这样做
代码: -
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());
}
}
答案 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));