2012-03-27 91 views
3

我需要知道如何模擬broadcastreceiver在Android中模擬廣播

我有下面的代碼,但我不知道如何真正看到它何時接收廣播。

public class LocationBroadcastReceiver extends BroadcastReceiver 
{ 
@Override 

public void onReceive(Context context, Intent intent) { 


    Bundle b = intent.getExtras(); 
    Location loc = (Location)b.get(android.location.LocationManager.KEY_LOCATION_CHANGED); 

    Toast.makeText(context, loc.toString(), Toast.LENGTH_SHORT).show(); 
    Log.d("com.dennis.test","LOCATION: " + loc.toString()); 


} 
} 

在我的表現,我有以下:

<receiver android:name="com.dennis.test.LocationBroadcastReceiver"> 
    <intent-filter> 
     <action android:name="android.location.LocationManager.KEY_LOCATION_CHANGED" /> 
    </intent-filter> 
</receiver> 
+0

對於你在manifest中註冊了什麼意圖? – user936414 2012-03-27 08:37:53

回答

7

轉至您的Android SDK安裝,然後到平臺工具的文件夾。將會有一些可執行文件。其中之一是'adb'。

當文件夾中,執行

./adb殼AM廣播-a android.intent.action.KEY_LOCATION_CHANGED -c android.intent.category.HOME -n com.dennis.test /。 LocationBroadcastReceiver

或Windows

亞行外殼AM廣播-a android.intent.action.KEY_LOCATION_CHANGED -c android.int ent.category.HOME -n com.dennis.test/.LocationBroadcastReceiver

+0

關於'adb shell am'的官方文檔:http://developer.android.com/tools/help/adb.html#am – Pang 2015-05-06 03:18:26

0

您應該也可以使用MockLocation從您的可執行文件或JUnit中生成。我沒有使用它,但這是它的目的。

這可能是功能上類似於@ user1258903的答案,但應能遠送位置(即,北極,媽媽的房子,海洋的底部等),這樣,您就可以測試出你的計算和地圖集成等,你可能有。

How to emulate GPS location in the Android Emulator?