Java 字符串未返回
我有一个create函数来返回字符串,该字符串是模型类中很多其他字符串的附加。请看下面我的代码Java 字符串未返回,java,android,string,Java,Android,String,我有一个create函数来返回字符串,该字符串是模型类中很多其他字符串的附加。请看下面我的代码 public static String getDefaultParameters(Context context){ System.out.println("Default Params"); PreDefinedAttributes preDefinedAttributes = new PreDefinedAttributes(context);
public static String getDefaultParameters(Context context){
System.out.println("Default Params");
PreDefinedAttributes preDefinedAttributes = new PreDefinedAttributes(context);
StringBuffer sb = new StringBuffer();
sb.append("&_vpw="+preDefinedAttributes.getWidth());
sb.append("&_vph="+preDefinedAttributes.getHeight());
sb.append("&sdk_version="+preDefinedAttributes.getSdk_version());
sb.append("&_src=android-sdk"
+"&_os="+preDefinedAttributes.getMobile_os());
sb.append("&os_version="+preDefinedAttributes.getMobile_version());
sb.append("&manufacturer="+preDefinedAttributes.getMobile_manufacturer());
System.out.println("Builder Params "+sb.toString());
return sb.toString();
}
但我没有在日志中获取生成器参数值。我也使用了带+号的StringBuilder和普通字符串,没有任何效果
预定义属性类的代码,其中填充了参数数据并返回值
public class PreDefinedAttributes {
private Context mContext;
private String mobile_os,mobile_model,mobile_brand,mobile_version,mobile_manufacturer;
private String sdk_version,src,appname,appversion;
private String lat="",lng="",device_id;
private static final int REQUEST_FINE_LOCATION=0;
private int height,width;
public PreDefinedAttributes(Context context) {
mContext = context;
this.mobile_model = android.os.Build.MODEL;
this.mobile_os = "Android";
this.mobile_brand = Build.BRAND + " "+Build.PRODUCT;
this.mobile_version = Build.VERSION.RELEASE;
this.mobile_manufacturer = Build.MANUFACTURER;
this.sdk_version = Utils.SDK_VERSION;
this.src = Utils.SDK_SRC;
this.device_id = Utils.getDeviceId(mContext);
try {
this.appversion = mContext.getPackageManager().getPackageInfo(mContext.getPackageName(), 0).versionName;
}catch (Exception e){
this.appversion = "";
}
final PackageManager pm = mContext.getPackageManager();
ApplicationInfo ai;
try {
ai = pm.getApplicationInfo( mContext.getPackageName(), 0);
} catch (final PackageManager.NameNotFoundException e) {
ai = null;
}
this.appname = (String) (ai != null ? pm.getApplicationLabel(ai) : "(unknown)");
height = Resources.getSystem().getDisplayMetrics().heightPixels;
width = Resources.getSystem().getDisplayMetrics().widthPixels;
//loadPermissions(Manifest.permission.ACCESS_FINE_LOCATION,REQUEST_FINE_LOCATION);
try {
SingleShotLocationProvider.requestSingleUpdate(mContext,
new SingleShotLocationProvider.LocationCallback() {
@Override
public void onNewLocationAvailable(SingleShotLocationProvider.GPSCoordinates location) {
Log.d("Location", "my location is " + location.toString());
lat = ""+location.latitude;
lng = ""+location.longitude;
}
});
}catch (SecurityException e){
e.printStackTrace();
}finally {
}
}
public int getHeight() {
return height;
}
public int getWidth() {
return width;
}
public String getDevice_id() {
return device_id;
}
public String getMobile_brand() {
return mobile_brand;
}
public String getMobile_model() {
return mobile_model;
}
public String getMobile_os() {
return mobile_os;
}
public String getMobile_version() {
return mobile_version;
}
public String getMobile_manufacturer() {
return mobile_manufacturer;
}
public String getSdk_version() {
return sdk_version;
}
public String getSrc() {
return src;
}
public String getAppname() {
return appname;
}
public String getAppversion() {
return appversion;
}
public String getLat() {
return lat;
}
public String getLng() {
return lng;
}
}您必须这样替换您的返回声明
return sb.toString();
您的字符串结果=”代码>
为空检查是否返回空字符串更改
你应该
返回sb.toString()代码>
而不是
返回结果代码>
编辑
public class PreDefinedAttributes {
private Context mContext;
private String mobile_os, mobile_model, mobile_brand, mobile_version, mobile_manufacturer;
private String sdk_version, src, appname, appversion;
private String lat = "", lng = "", device_id;
private static final int REQUEST_FINE_LOCATION = 0;
private int height, width;
public PreDefinedAttributes(Context context) {
mContext = context;
this.mobile_model = android.os.Build.MODEL;
this.mobile_os = "Android";
this.mobile_brand = Build.BRAND + " " + Build.PRODUCT;
this.mobile_version = Build.VERSION.RELEASE;
this.mobile_manufacturer = Build.MANUFACTURER;
this.sdk_version = 16 + "";
this.src = 16 + "";
this.device_id = 16 + "";
try {
this.appversion = mContext.getPackageManager().getPackageInfo(mContext.getPackageName(), 0).versionName;
} catch (Exception e) {
this.appversion = "";
}
final PackageManager pm = mContext.getPackageManager();
ApplicationInfo ai;
try {
ai = pm.getApplicationInfo(mContext.getPackageName(), 0);
} catch (final PackageManager.NameNotFoundException e) {
ai = null;
}
this.appname = (String) (ai != null ? pm.getApplicationLabel(ai) : "(unknown)");
height = Resources.getSystem().getDisplayMetrics().heightPixels;
width = Resources.getSystem().getDisplayMetrics().widthPixels;
//loadPermissions(Manifest.permission.ACCESS_FINE_LOCATION,REQUEST_FINE_LOCATION);
}
public int getHeight() {
return height;
}
public int getWidth() {
return width;
}
public String getDevice_id() {
return device_id;
}
public String getMobile_brand() {
return mobile_brand;
}
public String getMobile_model() {
return mobile_model;
}
public String getMobile_os() {
return mobile_os;
}
public String getMobile_version() {
return mobile_version;
}
public String getMobile_manufacturer() {
return mobile_manufacturer;
}
public String getSdk_version() {
return sdk_version;
}
public String getSrc() {
return src;
}
public String getAppname() {
return appname;
}
public String getAppversion() {
return appversion;
}
public String getLat() {
return lat;
}
public String getLng() {
return lng;
}
}
获取这样的值
PreDefinedAttributes preDefinedAttributes = new PreDefinedAttributes(this);
StringBuffer sb = new StringBuffer();
sb.append("&_vpw=" + preDefinedAttributes.getWidth());
sb.append("&_vph=" + preDefinedAttributes.getHeight());
sb.append("&sdk_version=" + preDefinedAttributes.getSdk_version());
sb.append("&_src=android-sdk"
+ "&_os=" + preDefinedAttributes.getMobile_os());
sb.append("&os_version=" + preDefinedAttributes.getMobile_version());
sb.append("&manufacturer=" + preDefinedAttributes.getMobile_manufacturer());
Log.e("Builder Params " , sb.toString());
输出
但即使是System.out.println(“Builder参数”+sb.toString());不是打印细线我也是这么做的,得不到result@Sankari在日志中打印值我认为您没有从预定义属性中获取值class@Sankari您在y设备中运行良好,我得到结果11-30 11:39:41.748 2888-2888/com.ncrypted.bistrostays E/Builder参数:&_vpw=1080&_vph=1794&sdk_version=16&_src=android sdk&_os=android&os_version=6.0&manufacturer=unknownthanks i remove lat long函数现在可以工作了fine@Sankari很高兴为您提供帮助您正在返回不包含任何内容的字符串结果将语句替换为返回结果返回sb.toString()@Waleed Asim System.out.println(“生成器参数”+某人扭动绳子;这一行没有打印为什么要否决我的问题。我没有得到我尝试过的解决方案。这是适配器类、片段或活动?这是仅用于project utility的java类