2011-09-15 19 views
6

Tôi tiếp tục gặp phải lỗi này khi khởi chạy dịch vụ từ onReceive hoặc onUpdate trong lớp AppWidgetProvider của tôi.Android PermissionDenial: Bind_RemoteViews Permission

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 

Tôi đã tuyên bố quyền trong Tệp kê khai Android của mình.

Nhưng nó vẫn mang lại cho tôi điều này.

Có điều gì tôi đang làm sai?

Đây là những gì mã của tôi trông giống như ..

@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); 
} 

}

EDIT: Tôi có nó khai báo trong manifest của tôi ..

Dưới đây là những gì tôi vẫn nhận được ...

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 

CHỈNH SỬA: Tệp kê khai

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

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

Có sự cho phép và Dịch vụ khai báo trong tôi manfiest

+0

Bạn đang thử mã nào ... bạn đang sử dụng cố gắng sử dụng nó trong ứng dụng khác hoặc điều gì đó tương tự ...? –

+0

Không .. chỉ sử dụng nó trong một. –

Trả lời

6

Hãy thử đặt cho phép của bạn bên trong thẻ dịch vụ của bạn:

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

Ngoài ra, dấu chấm trước tên lớp học của bạn là rất quan trọng vì nó là một phím tắt (vì vậy bạn không phải viết tên lớp đủ điều kiện) và thuộc tính android: enabled là true theo mặc định.

0

Tôi có vấn đề này là tốt,

May mắn thay, tôi đã có nó xảy ra trong dự án 3 tháng sau đầu tiên thêm sự cho phép.

Phải có lỗi trong SDK vì nó không cho tôi biết điều khoản không chắc chắn "Đây là quyền của hệ thống" và sẽ không cho phép tôi chạy dự án của mình thông qua Eclipse. Tuy nhiên, thông qua kiến, nó được xây dựng tốt. Hơn nữa, sau khi làm sạch và xây dựng dự án, nó quyết định rằng nó không phải là một sự cho phép hệ thống sau khi tất cả và mọi thứ đều ổn. Hy vọng rằng bây giờ lỗi của bạn đã biến mất, nhưng đáng chú ý cho bất cứ ai khác lang thang ở đây rằng nó an toàn để bỏ qua điều này (AFAIK) nếu một vài sạch sẽ và xây dựng lại làm cho nó biến mất.

Các vấn đề liên quan