[問題] GPS定位模擬器可以運作手機不行??

作者: jerryxin (jerry)   2019-10-09 06:54:44
我想問大家
我寫的Android 讀取當前GPS的程式
寫好後,在Android模擬器上能運作
但是在Android手機上讀不出值(手機定位有打開,Android9.0 華碩手機)
public class MainActivity extends AppCompatActivity implements
LocationListener {
public static final String TAG = "MainActivity";
private TextView tvLocation;
private TextView tvUpdateCounts;
private LocationManager locationManager;
private int count;
private static final int REQUEST_LOCATION = 10;
Double longitude;
Double latitude;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvLocation = (TextView) findViewById(R.id.tvLocation);
tvUpdateCounts = (TextView) findViewById(R.id.tvUpdateCounts);
if(Build.VERSION.SDK_INT> Build.VERSION_CODES.M){
if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED &&
checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new
String[]{Manifest.permission.ACCESS_FINE_LOCATION},
REQUEST_LOCATION);
return;
}
}
locationManager = (LocationManager)
getSystemService(Context.LOCATION_SERVICE);
// Location location1 =
locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
// tvLocation.setText("經度:"+location1.getLongitude()+"緯度:
"+location1.getLatitude());
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
5000, 0, this);
//tvLocation.setText("經緯度
"+.getLongitude()+","+location.getLongitude());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is
present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onLocationChanged(Location location) {
Log.i(TAG,"onLocationChanged");
count++;
longitude=location.getLongitude();
latitude=location.getLatitude();
tvLocation.setText("經緯度"+longitude+","+latitude);
tvUpdateCounts.setText("更新次數:"+count);
}
@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
Log.i(TAG,"onStatusChanged"+ tvLocation.toString());
}
@Override
public void onProviderEnabled(String s) {
Log.i(TAG,"onProviderEnabled");
}
@Override
public void onProviderDisabled(String s) {
Log.i(TAG,"onLocationChanged");
}
}
Layout:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/tvLocation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="經緯度"
android:textSize="24sp" />
<TextView
android:id="@+id/tvUpdateCounts"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tvLocation"
android:text="更新次數"
android:textSize="24sp" />
</RelativeLayout>
在模擬器上GPS位置有顯示出來
但在手機上都沒出來
這不知道是什麼原因???
煩請高手解答
作者: kobe8112 (小B)   2019-10-09 09:33:00
Logcat說啥?

Links booklink

Contact Us: admin [ a t ] ucptt.com