pthread_exit()
}
我已经尝试了很多次,但这段代码似乎没有用。我已设置所需的所有权限和依赖项。它仍然没有在屏幕上显示任何内容。
我使用ANDROID EMULATOR
谢谢....
这是我的清单文件:
public class MainActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
GoogleApiClient mGoogleApiClient;
TextView mLatitude;
TextView mLongitude;
final String TAG = " ";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
mLatitude = (TextView) findViewById(R.id.mLatitude);
mLongitude = (TextView) findViewById(R.id.mLongitude);
mGoogleApiClient = new GoogleApiClient.Builder(this).addApi(LocationServices.API).addConnectionCallbacks(this).addOnConnectionFailedListener(this).build();
}
protected void onStart() {
mGoogleApiClient.connect();
super.onStart();
}
protected void onStop() {
mGoogleApiClient.disconnect();
super.onStop();
}
@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 onConnected(Bundle bundle) throws SecurityException{
Location mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
if(mLastLocation!=null)
{
Log.i(TAG,"last location recieved");
mLatitude.setText(String.valueOf(mLastLocation.getLatitude()));
mLongitude.setText(String.valueOf(mLastLocation.getLongitude()));
}
else
{
Log.i(TAG,"LOCATION NOT RECEIVED");
}
}
@Override
public void onConnectionSuspended(int i) {
Log.i(TAG,"connection suspended");
}
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
Log.i(TAG,"connection failed");
}
build.app文件如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sairaman.lastlocation">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
</manifest>
答案 0 :(得分:1)
位置可能无法在模拟器上正常运行。在设备上测试。
作为pr this question:从模拟器中你无法获得当前位置。你必须自己通过位置。这个
C:/android sdk/tools/ddms.bat
当你运行这个bat文件时,你会在那里找到一个模拟器选项卡。从此选项卡中,您可以将位置传递给模拟器。