2016-03-23 28 views
3

Android N uygulamasında uygulamanıza hızlı bir şekilde geçiş yapmayı deniyorum. Hızlı döşeme görünür, ancak tıklandığında hiçbir şey yapmaz. Dokunulduğunda görünür geri bildirimi görebiliyorum, bu yüzden tıklamanın tanındığını biliyorum, ancak tıklandığında hiçbir şey yapmıyor.Hızlı Ayarlar Toogle'da Android N

public class QuickSettingTileService extends TileService { 

    public QuickSettingTileService() 
    { 
    } 

    @Override 
    public IBinder onBind(Intent intent) 
    { 
     return null; 
    } 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startID) 
    { 
     //some setup code is here 

     return START_STICKY; 
    } 

    @Override 
    public void onClick() 
    { 
     Context context = getApplicationContext(); 

     Toast.makeText(context, "Quick Setting Clicked", Toast.LENGTH_SHORT).show(); 
     //Toggle code is here 
    } 
} 

Benim tezahür neredeyse doğrudan belgelere kopyalanan kodu vardır:

İşte benim servis şifresi. Sadece hafif değişiklikler yapıldı: Servis uygulamasını açarak üzerine başlatılır

<service 
    android:name=".QuickSettingTileService" 
    android:label="@string/app_name" 
    android:icon="@drawable/quick_toggle_off" 
    android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"> 
    <intent-filter> 
     <action android:name="android.service.quicksettings.action.QS_TILE" /> 
    </intent-filter> 
</service> 

:

@Override 
public IBinder onBind(Intent intent) 
{ 
    return null; 
} 

@Override 
public int onStartCommand(Intent intent, int flags, int startID) 
{ 
    //some setup code is here 
    return START_STICKY; 
} 

Intent serviceIntent = new Intent(this, QuickSettingTileService.class); 
startService(serviceIntent); 
+0

Bir "Toast" kullanmak yerine LogCat'e giriş yapmayı deneyin. – CommonsWare

cevap

5

Sadece QuickSettingTileService sınıfından bu satırları kaldırmak hiç gerek yoktur Bir TileService üzerinde onBind() veya onStartCommand() öğesini geçersiz kılın.

Ayrıca, bu hizmeti açıkça başlatmanız gerekmez. Bildirimde izin ve amaç filtresi, kiremitiniz Bildirim çubuğuna eklendiğinde Android OS'nin hizmetinizi başlatmasını sağlar.

+0

Vay, bu çok basitti. Teşekkürler! Aslında, onBind'i geçersiz kılmadan bir hata alıyorum, ama sanırım TileService yerine yanlışlıkla Hizmeti genişletiyordum. – Randy

+0

Bunun işe yaradığıma sevindim. Lütfen cevap olarak işaretlemeyi unutmayın, bu da diğer insanlara yardımcı olabilir. – murki

İlgili konular