#java #android
#java #Android
Вопрос:
Это кнопка, нажатием на которую я хочу отправить сообщение получателю, используя текущее местоположение
b.setOnClickListener(new View.OnClickListener() {
String loc;
@Override
public void onClick(View view) {
arrno[0]=num1;
arrno[1]=num2;
arrno[2]=num3;
arrno[3]=num4;
requestpermisson();
for (int i = 0; i < arrno.length; i ) {
*here the getter data is stored in the loc String*
loc=getMyLocation();
sendSMS(arrno[i], "I am in trouble :n" "My current Address :" loc);
}
Это просто для отображения сообщения о текущем местоположении и мобильном
числа
для тестированияproblem is that I get the location and it sends the SMS with location and sometimes I get a null string and sometimes it does not send
SMS (возможно, из-за превышения лимита сообщений)
Toast.makeText(getApplicationContext(), "" num1 "" num2 "" num3 "" num4 " " loc , Toast.LENGTH_LONG).show();
}
});
locationManager =(LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
locationListener=new LocationListener() {
@Override
public void onLocationChanged(Location location) {
if(location!=null) {
Geocoder geocoder = new Geocoder(getApplicationContext(), Locale.getDefault());
try {
List<Address> listAddresses = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
if (listAddresses != null amp;amp; listAddresses.size() > 0) {
String address = "";
if (listAddresses.get(0).getAddressLine(0) != null) {
address = listAddresses.get(0).getAddressLine(0) " ";
}
if (listAddresses.get(0).getAddressLine(1) != null) {
address = listAddresses.get(0).getAddressLine(1) " ";
}
if (listAddresses.get(0).getAdminArea() != null) {
address = listAddresses.get(0).getAdminArea() " ";
}
if (listAddresses.get(0).getLocality() != null) {
address = listAddresses.get(0).getLocality() " ";
}
// this will show you your current address
Toast.makeText(MainActivity.this, address, Toast.LENGTH_SHORT).show();
setMyLocation(address);
}
} catch (Exception e) {
e.printStackTrace();
}
}
else
{
Toast.makeText(context, "no location found", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
};
if(ContextCompat.checkSelfPermission(this,Manifest.permission.ACCESS_FINE_LOCATION)!=PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},1);
}
else
{
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
}
}
private static final int MY_PERMISSIONS_REQUEST_SEND_SMS = 1;
Это для запроса разрешения
public void requestpermisson() {
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.SEND_SMS)
!= PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.SEND_SMS)) {
} else {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.SEND_SMS},
MY_PERMISSIONS_REQUEST_SEND_SMS);
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (grantResults.length > 0 amp;amp; grantResults[0] == PackageManager.PERMISSION_GRANTED) {
if(ContextCompat.checkSelfPermission(this,Manifest.permission.ACCESS_FINE_LOCATION)==PackageManager.PERMISSION_GRANTED) {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
}
}
}
Это функция для отправки sms
public void sendSMS(String phoneno, String msg){
Toast.makeText(getApplicationContext(),"In show m",Toast.LENGTH_SHORT).show();
try{
SmsManager smsManager=SmsManager.getDefault();
smsManager.sendTextMessage(phoneno,null,msg,null,null);
Toast.makeText(getApplicationContext(),"message has been send to " phoneno,Toast.LENGTH_SHORT).show();
}
catch (Exception ex){
Toast.makeText(getApplicationContext(),"sms not sent",Toast.LENGTH_SHORT).show();
}
}
Комментарии:
1. Я опубликовал код в аккуратном формате или мне следует его изменить, это мой первый раз, поэтому нет знаний, пожалуйста, прокомментируйте, если я ошибаюсь