2016-07-20 10 views
0

Ich möchte wissenschaftlichen Rechner von Android-Gerät öffnen, um diese mit Absicht Ich versucheWie Standard wissenschaftlichen Rechner in Android mit Absicht zu öffnen?

ArrayList<HashMap<String, Object>> items = new ArrayList<HashMap<String, Object>>(); 
    final PackageManager pm = getPackageManager(); 
    List<PackageInfo> packs = pm.getInstalledPackages(0); 
    for (PackageInfo pi : packs) { 
     if (pi.packageName.toString().toLowerCase().contains("calcul")) { 
       HashMap<String, Object> map = new HashMap<String, Object>(); 
       map.put("appName", pi.applicationInfo.loadLabel(pm)); 
       map.put("packageName", pi.packageName); 
       items.add(map); 
      } 
     } 

     if (items.size() >= 1) { 
      String packageName = (String) items.get(0).get("packageName"); 
      Intent i = pm.getLaunchIntentForPackage(packageName); 
      if (i != null) 
       startActivity(i); 
     } else { 
      // Application not found 
     } 

Aber dieser offene Standard-Rechner, und ich habe wissenschaftliche Rechner öffnen

+0

Haben Sie versuchen 'auszudrucken Elemente' alle Einzelteile zu sehen? Kann sein, dass der Name von zwei Paketen "calcul" und "items.get (0)" enthält. – Joshua

+0

Ich habe versucht, es zu drucken.Es druckt nur einen Paketnamen –

+0

Es ist wahrscheinlich der Paketname des Wissenschaftlichen Rechners enthält nicht "calcul". Sie sollten stattdessen den genauen Paketnamen finden. – Joshua

Antwort

0

Sie versuchen sollten, ob es irgendwelche APIs sind zu finden für den Standardrechner. Wenn keine dokumentierten APIs vorhanden sind, können Sie versuchen, die apk zurückzuentwickeln und den Paketnamen und den Aktivitätsnamen zu suchen.

Dann können Sie den Code unten verwenden:

Intent intent = new Intent(); 
// Replace with porper package name and activity name 
intent.setComponent(new ComponentName("com.example", "com.example.CalActivity")); 
startActivity(intent); 
Verwandte Themen