Ich versuche, in meinem Code Scheinposition zu aktivieren, konnte es aber nicht funktionieren. Es stürzt grundsätzlich die App ab. HierAktivieren Sie Mock-Standorte und fügen Sie TestProvider Abstürze in Android Marshmallow (v6)
ist das, was ich getan habe:
- (mit Android Studio) Ich AndroidManifest.xml von normaler Lage zu androidTest repliziert und Test mit der folgenden Zeile
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
hinzugefügt (btw, solltest ich duplizieren Sie die ganze AndroidManifest.xml unter androidTest und Test oder gerade über die Linie nur)
- und mein Code stürzt an folgenden Orten
final String providerName = "MyWalkPokemonGPSProvider";
private LocationManager mLocationManager;
public void setMyGPS(){
mLocationManager = (LocationManager) getSystemService(getApplicationContext().LOCATION_SERVICE);
// this is where it crashes
// if it is commented out, then it runs (but still does not allow MOCK)
mLocationManager.addTestProvider(providerName, true, false, false, false, true, true, true,
Criteria.POWER_LOW, Criteria.ACCURACY_FINE);
Location loc = new Location(providerName);
loc.setTime(System.currentTimeMillis());
loc.setLongitude(37.331784);
loc.setLatitude(-121.885547);
mLocationManager.setTestProviderLocation(providerName, loc);
new Location(LocationManager.GPS_PROVIDER);
}
btw, ist dieser Code in einem
public class OverlayShowingService extends Service { }
seit ich hier einige Overlay-Schaltflächen bin definieren. (Update: zur Klärung, erklärte ich den Dienst in manifest.xml)
Also, meine Fragen sind
, wenn ich es laufen (durch den Teil Kommentierung aus, die abstürzt), konnte ich noch nicht gefunden die App unter Einstellungen -> Entwickler-Option -> Mock-Location-App. Es ist dort nicht aufgeführt.
Ich baue die App, indem ich Build -> Signed APK -> generieren und Build-Typ = debug verwenden.
Was habe ich hier falsch gemacht? Ich habe versucht, Vorschläge unter Enable Mock Locations in Android Marshmallow, aber funktioniert nicht
Warum stürzt mlacationManager.addTestProvider? Irgendwelche Vorschläge ?
-Update: zur Klärung, hier ist das Manifest (für den Test):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.michaelandjewel.walkmypokemon">
<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">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name="com.michaelandjewel.walkmypokemon.OverlayShowingService"
android:exported="false" />
</application>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
</manifest>
Ja, wird der Dienst in Manifest erklärt.Wie bereits erwähnt, konnte ich die App nicht unter der Einstellung für den Scheinort finden. Daher kann ich sie nicht auswählen. –
irgendeinen anderen Vorschlag? Der addTestProvider stürzt die App immer noch ab. –
Sie haben auch die Berechtigungen für GPS richtig? Feine und/oder Grobe Standort und GPS-Anbieter –