2011-09-15 94 views
6

從我的AppWidgetProvider類中的onReceive或onUpdate啓動服務時,我總是收到此錯誤。Android PermissionDenial:Bind_RemoteViews權限

09-15 11:54:04.096: WARN/ActivityManager(1318): Permission Denial: Accessing service ComponentInfo{com.fttech.gameIT/com.fttech.StackWidgetService} from pid=1318, uid=1000 requires android.permission.BIND_REMOTEVIEWS 

我已經在Android Manifest中聲明瞭權限。

但它仍然給我這個。

有什麼我做錯了嗎?

這裏是我的代碼看起來像..

@Override 
public void onReceive(Context context, Intent intent){ 
    AppWidgetManager.getInstance(context); 

    intent = new Intent(context, StackWidgetService.class); 
    context.startService(intent); 

    super.onReceive(context, intent); 
} 
@Override 
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds){ 

    super.onUpdate(context, appWidgetManager, appWidgetIds); 
    Intent intent = new Intent(context, StackWidgetService.class); 
    context.startService(intent); 
} 

}

編輯:我有它在我的清單中聲明..

這裏是我仍然得到...

09-15 12:13:03.818: WARN/ActivityManager(1318): Permission Denial: Accessing service ComponentInfo{com.fttech/com.fttech.StackWidgetService} from pid=1318, uid=1000 requires android.permission.BIND_REMOTEVIEWS 
09-15 12:13:03.864: WARN/ActivityManager(1318): Permission Denial: Accessing service ComponentInfo{com.fttech/com.fttech.StackWidgetService} from pid=1318, uid=1000 requires android.permission.BIND_REMOTEVIEWS 
09-15 12:13:03.872: WARN/ActivityManager(1318): finishReceiver called but no pending broadcasts 
09-15 12:13:03.919: WARN/WidgetAidService(21261): BroadcastReceiver onReceive called 
09-15 12:13:03.919: WARN/ActivityManager(1318): Permission Denial: Accessing service ComponentInfo{com.fttech/com.fttech.StackWidgetService} from pid=1318, uid=1000 requires android.permission.BIND_REMOTEVIEWS 

編輯:清單

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

    <service android:name="StackWidgetService" 
     android:enabled="true" 
     /> 

有許可和服務中聲明我manfiest

+0

你在用你的代碼試圖做什麼...你是否正在嘗試在其他應用程序中使用它或類似的東西...? –

+0

No ..im僅在一箇中使用它。 –

回答

6

嘗試把您的許可,您的服務標籤內:

<application> 
    ... 
    <service 
     android:name=".StackWidgetService" 
     android:exported="false" 
     android:permission="android.permission.BIND_REMOTEVIEWS" /> 
</application> 

另外,你的類名之前的點是非常重要的,因爲它是一個快捷方式(因此您不必編寫完全限定的類名稱),android:enabled屬性默認爲true。

0

我有這個問題爲好,

幸運的是,我不得不在項目中發生3個月後首次添加的權限。

SDK中必須存在錯誤,因爲它明確告訴我「這是系統權限」,不會讓我通過Eclipse運行我的項目。然而,通過螞蟻,它建立好。更重要的是,在清理和構建項目之後,它決定終究不是系統許可,一切都很好。

希望現在你的錯誤已經消失,但值得注意的是,任何其他人在這裏遊蕩,如果一些乾淨和重建使它消失,可以忽略這個(AFAIK)是安全的。