2011-07-15 17 views
0

私のプログラムはうまくいっていますが、突然NETWORK_PROVIDERが場所の更新を停止しました。 WIFIが有効になっていると、これも機能しません。 なぜ誰かが知っていますか?NETWORK_PROVIDERが場所の更新を提供していません

ありがとうございました!ここで

は、いくつかの(crypled)は、Javaです:

package com.tripr; 

public class MyWallpaperService extends WallpaperService{ 



    <snip> 


    @Override 
    public Engine onCreateEngine() { 
     return new CubeEngine(this); 
    } 


    class CubeEngine extends Engine implements LocationListener{ 

     private MyWallpaperService mws; 
     private LocationManager lm; 


     <snip> 


     CubeEngine(MyWallpaperService mymws) { 
      mws = mymws; 

      lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
      requestLocationUpdates(); 
      MyThread myThread = new MyThread(lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER)); 
      myThread.start(); 
     } 

    void requestLocationUpdates(){ 
      lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000*30, 10, this); 
     } 

     void removeUpdates(){ 
      lm.removeUpdates(this); 
     } 


     @Override 
     public void onLocationChanged(Location location) { 
      MyThread myThread = new MyThread(location); 
      myThread.start(); 

     } 

     <snip> 
} 

とマニフェスト:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.tripr" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <uses-sdk android:minSdkVersion="7" /> 

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 


    <uses-feature android:name="android.software.live_wallpaper" /> 

    <application android:icon="@drawable/icon" android:label="@string/app_name"> 

     <service android:name=".MyWallpaperService" 
      android:label="@string/app_name" 
      android:icon="@drawable/icon" 
      android:permission="android.permission.BIND_WALLPAPER"> 

      <intent-filter> 
       <action android:name="android.service.wallpaper.WallpaperService" /> 
      </intent-filter> 
      <meta-data android:name="android.service.wallpaper" 
       android:resource="@xml/livewallpaper" /> 

     </service> 

    </application> 
</manifest> 
+0

あなたがしようとしましたそれは実際のデバイスでですか?私はあなたがエミュレータでNETWORK_PROVIDERサービスを実現できるかどうか分かりません... –

+0

はい、私は2つの異なるデバイスで試して、両方で作業しませんでした – nomoral

+0

isLocationProviderEnabled(LocationManager.NETWORK_PROVIDER)を確認しますか? –

答えて

1

NETWORK_PROVIDERはこのような動作確認であれば確実にするために、

if(isLocationProviderEnabled(LocationManager.NETWORK_PROVIDER)) 
{ 
    Log.i("PROVIDER", "ENABLED"); 
} 
関連する問題