我是Android Studio新手。作为短信发送当前位置Android Studio
我试图发送当前位置作为单击按钮时的文本消息,但没有任何反应,当我点击。
首先,这里是我的XML:
<Button android:id="@+id/emergency"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginLeft="14dp"
android:layout_marginStart="14dp"
android:background="@drawable/button_selector1"
android:drawableEnd="@android:drawable/ic_dialog_alert"
android:gravity="center"
android:maxLines="1"
android:paddingLeft="15dip"
android:paddingRight="15dip" />
然后,这里是我的MainActivity代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.ly_home);
emergency = (Button) findViewById(R.id.emergency);
emergency.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
GPStracker g = new GPStracker(getApplicationContext());
Location l = g.getLocation();
if (l != null){
double lat = l.getLatitude();
double lon = l.getLongitude();
String message="http://maps.google.com/maps?saddr="+lat+","+lon;
String number = "xxxxxxxx";
SmsManager smsManager = SmsManager.getDefault();
StringBuffer smsBody = new StringBuffer();
smsBody.append(Uri.parse(message));
android.telephony.SmsManager.getDefault().sendTextMessage(number, null, smsBody.toString(), null,null);
}
}
});
}
而且,我的GPStracker类:
public class GPStracker implements LocationListener{
Context context;
public GPStracker(Context c){
context = c;
}
public Location getLocation(){
LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
boolean isGPSEnabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
if (isGPSEnabled){
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,6000,10,this);
Location l = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
return l;
}else{
Toast.makeText(context,"Please enable GPS", Toast.LENGTH_LONG).show();
}
return null;
}
@Override
public void onLocationChanged(Location location) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
}
我给的权限在清单中:精细的位置,粗略的位置和收发短信。我究竟做错了什么?
你有没有得到任何位置? (在通过短信发送之前) – user3808887