2017-01-19 3 views
-1

wenn eine App im Gerät und nach Erfolg installiert wird. Ich muss den Namen des App-Pakets bekommen und vom Paketnamen muss ich "App-Name" identifizieren. Wie kann ich tun, dassWie bekomme ich den Anwendungsnamen in Android?

Code: -

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

Haben Sie über den PackageManager versucht? – EpicPandaForce

+0

siehe [Übertragung empfangen, wenn App installiert wurde] (http://stackoverflow.com/questions/11246326/how-to-receiving-broadcast-when-application-installed-or-removed) siehe [get application name from package name] (http://stackoverflow.com/questions/5841161/get-application-name-from-package-name) – Omer

+0

http://stackoverflow.com/questions/7090883/how-can-i-get-package-name-in -android – saiRam89

Antwort

0

In Ihrem Manifest, einen Empfänger mit dem entsprechenden Absicht Dienst hinzufügen (Innenanwendung Tag):

<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> 

Laut Google doc:

PACKAGE_INSTALL Übertragungsaktion: Auf dem Gerät wurde ein neues Anwendungspaket installiert. Die Daten enthält den Namen des Pakets. Beachten Sie, dass das neu installierte Paket diese Übertragung nicht empfängt.

Verwenden Sie dann Ihre onReceive-Code-Methode.

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"); 
    } 
} 
0

Verwenden Sie die folgende Methode, um den Namen des Anwendungspakets abzurufen.

intent.getData().getSchemeSpecificPart() 

und verwenden Sie den untenstehenden Code, um weitere anwendungsspezifische Informationen zu erhalten.

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(); 
} 
1
String pakageName =getPackageName(); 
String[] separated = pakageName.split("."); 
separated[0]; 
separated[1]; 

hören Code für Namen get Anwendung, Name zuerst get-Paket und als es aufgespalten Anwendungsnamen zu erhalten.

0

Sie können Ihren App-Namen oder Ihr Anwendungslabel erhalten, wenn Sie den Paketnamen haben. Hier ist wie

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