2012-07-12 6 views
5

मैं कैलेंडर विजेट विकसित कर रहा हूं, और जब मैं मैन्युअल रूप से बदलता हूं तो मुझे DATE_CHANGED संदेश प्राप्त नहीं हो सकता है।एंड्रॉइड विजेट DATE_CHANGED संदेश प्राप्त नहीं कर सकता

समस्या क्या है?

प्रकट में मेरे कोड है:

<receiver android:name="com.widget.calendar.CalendarWidgetProvider"> 
    <intent-filter> 
     <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> 
     <action android:name="android.intent.action.DATE_CHANGED"/> 
    </intent-filter> 
    <!-- This specifies the widget provider info --> 
    <meta-data android:name="android.appwidget.provider" 
     android:resource="@xml/widgetinfo" /> 
</receiver> 

और मैं इस तरह इसे प्राप्त करने की कोशिश की:

@Override 
public void onReceive(Context ctx, Intent intent) { 
    final String action = intent.getAction(); 
    if (action.equalsIgnoreCase("android.intent.action.DATE_CHANGED")) { 
     Log.e(TAG, "Date changed.....!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); 
    } 
    super.onReceive(ctx, intent); 
} 

लेकिन लॉग मुद्रित नहीं है जब मैं सिस्टम दिनांक मैन्युअल रूप से बदल जाते हैं।

धन्यवाद!

अद्यतन:

मैं Intent.ACTION_TIME_CHANGED के साथ इस हल, यह वास्तव में DATE_CHANGED की एक बग है।

उत्तर

7

उपयोग इस आशय:

<intent-filter> 
     <action android:name="android.intent.action.TIME_SET"/> 
</intent-filter> 

और प्राप्त करते हैं:

@Override 
public void onReceive(Context ctx, Intent intent) { 
    final String action = intent.getAction(); 
    if (action.equalsIgnoreCase("android.intent.action.TIME_SET")) { 
     Log.e(TAG, "Date changed.....!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); 
    } 
    super.onReceive(ctx, intent); 
} 
+0

लेकिन यह आपकी बैटरी समाप्त हो के रूप में यह प्रसारण रिसीवर बार-बार फोन करेगा जब भी समय बदल जाएगा कारण होगा। – Akram

+1

@Akki मैंने परीक्षण किया है कि यह इस TIME_SET इरादे को तब तक नहीं भेजेगा जब तक कि मैं सिस्टम समय या दिनांक मैन्युअल रूप से नहीं बदलता। तो बैटरी यहां सुरक्षित है। :) – herbertD

+0

ताकि जब आप उपयोगकर्ता को मैन्युअल रूप से बदलते हैं तो आप इस रिसीवर को कॉल करना चाहते हैं? – Akram

संबंधित मुद्दे