2016-05-13 9 views

Antwort

0

Sie können c reate eine eigene Klasse wie folgt aus:

import android.content.Context; 
import android.content.pm.PackageManager; 
import android.os.Build; 
import android.telephony.TelephonyManager; 
import android.text.TextUtils; 

public class Utils { 

    public static String buildDeviceUserInformation(Context context) { 
     StringBuilder builder = new StringBuilder(); 

     builder.append(String.format("Device: %s\n", getDeviceName())); 
     builder.append(String.format("OS: %s\n", Build.VERSION.RELEASE)); 
     builder.append(String.format("App Version: %1$s/%2$s\n", getAppVersion(context), getAppVersionCode(context))); 

     String carrierName = getCarrier(context); 

     if(!TextUtils.isEmpty(carrierName)) 
      builder.append(String.format("Carrier: %1$s\n", carrierName)); 

     return builder.toString(); 
    } 

    public static String getCarrier(Context context) { 
     try { 
      TelephonyManager manager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE); 
      return manager.getNetworkOperatorName(); 
     } 
     catch (Exception e) { 
      return ""; 
     } 
    } 

    public static String getDeviceName() { 
     String device = Build.MANUFACTURER; 

     if(!TextUtils.isEmpty(Build.MODEL)) { 
      device = TextUtils.isEmpty(device) ? Build.MODEL : device + " " + Build.MODEL; 
    } 

     return device; 
    } 

    public static String getAppVersion(Context context) { 
     try { 
      return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName; 
     } catch (PackageManager.NameNotFoundException e) { 
      return ""; 
     } 
    } 

    public static Integer getAppVersionCode(Context context) { 
     try { 
      return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode; 
     } catch (PackageManager.NameNotFoundException e) { 
      return null; 
     } 
    } 
} 

und dann einfach in Ihre Absicht es wie folgt verwenden:

emailIntent.putExtra(Intent.EXTRA_TEXT, Utils.buildDeviceUserInformation(AboutMeActivity.this)); 

Ausgabe würde wie folgt aussehen:

Device: LGE Nexus 5 
OS: 6.0.1 
App Version: 10.70/1070 
+0

seine throw Fehler wie unbekannte Entität Context .. & unbekannt Modifikator statisch. – user6330086

+0

Ich habe gerade meine Antwort mit den Importen aktualisiert – x0r

+0

ok, werde zurück melden! :) – user6330086

0

Um die OS-Version zu erhalten, verwenden Sie einfach Build.VERSION.RELEASE

Was das Gerätemodell können Sie

public static String getDeviceModel() { 
    return Build.MANUFACTURER + " " + Build.MODEL; 
} 

dann verwenden, wenn Sie diese in den Text Ihrer aufnehmen möchten emailIntent, verwenden Sie einfach:

StringBuilder builder = new StringBuilder(); 
//Device model 
builder.append(getDeviceModel()) 
      .append("\n"); 
//OS 
builder.append(Build.VERSION.RELEASE); 

intent.putExtra(android.content.Intent.EXTRA_TEXT, builder.toString()); 
Intent chooserIntent = Intent.createChooser(intent, "Contact us"); 
startActivity(chooserIntent); 
+0

Dank! Es funktioniert :) – user6330086

Verwandte Themen