7

के बाद BOOT_COMPLETED इरादा नहीं प्राप्त कर रहा है, मैं BOOT_COMPLETED इरादे का उपयोग करके मेरी ब्रॉडकास्ट रिसीवर ऑन रिसीव विधि प्राप्त करने में असमर्थ हूं।मेरा ब्रॉडकास्ट रिसीवर मेरे एन 1 बूट

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.jerrellmardis.umbrella" 
     android:versionCode="4" 
     android:versionName="1.0.3"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name" 
      android:theme="@android:style/Theme.NoTitleBar"> 
     <activity android:name=".activities.Umbrella" android:screenOrientation="portrait"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name=".activities.Preferences" android:label="@string/app_name" android:screenOrientation="portrait" /> 
     <receiver android:name="com.jerrellmardis.umbrella.receiver.WeatherStartupReceiver"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
     </receiver> 
     <service android:name=".service.WeatherUpdateService"> 
      <intent-filter> 
       <action android:name="com.jerrellmardis.umbrella.service.WeatherUpdateService" /> 
      </intent-filter> 
     </service> 
    </application> 
    <uses-sdk android:minSdkVersion="3" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.VIBRATE" /> 
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
</manifest> 

WeatherStartupReceiver.java

package com.jerrellmardis.umbrella.receiver; 

import android.app.Notification; 
import android.app.NotificationManager; 
import android.app.PendingIntent; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.provider.Contacts.People; 
import android.util.Log; 

import com.jerrellmardis.umbrella.R; 

public class WeatherStartupReceiver extends BroadcastReceiver { 

     private NotificationManager mNotificationManager; 
     private int SIMPLE_NOTFICATION_ID; 

     @Override 
     public void onReceive(Context context, Intent intent) { 
       // Do something interesting here... 
     } 
} 
+0

ऑरैकिकॉम, समस्या का हल कैसे हुआ। कृपया –

उत्तर

15

BOOT_COMPLETED प्रसारण प्राप्त करने वाले सभी एप्लिकेशन आंतरिक संग्रहण पर स्थापित किए जाने चाहिए क्योंकि एंड्रॉइड डिवाइस पर बाहरी संग्रहण को घुमाने से पहले ACTION_BOOT_COMPLETED प्रसारित करता है।

सुनिश्चित करने के लिए कि आपके आवेदन की आंतरिक मेमोरी पर स्थापित किया जाएगा तुम सिर्फ नहीं जरूरत android:installLocation मेनिफ़ेस्ट विशेषता घोषित करने के लिए।

एक अन्य विकल्प प्रकट अनुभाग में निम्न स्थापित करने के लिए है: android:installLocation="internalOnly"

आप इसे here बारे में अधिक जानकारी पा सकते हैं।

+0

आपके लिंक में एक अवधि शामिल है एक 404. पिछली अवधि को हटाने से समस्या हल हो जाती है। सबमिट संपादित करें। – Splaktar

+0

उत्कृष्ट उत्तर, मैं बहुत शिकार करता हूं और मैं आपके धागे पर समाप्त होता हूं – Hunt

2

संपादित करें: सब कुछ भूल जाओ, मैं एक बेहतर स्पष्टीकरण मिल गया है।

आप के साथ निर्यात = सच अपने रिसीवर को परिभाषित करने के लिए है और = सक्षम सच

<receiver android:name="com.jerrellmardis.umbrella.receiver.WeatherStartupReceiver" 
    android:enabled="true" 
    android:exported="true" 
> 

मुझे लगता है कि आप इस

<receiver android:name=".WeatherStartupReceiver"> 
के लिए इस लाइन

<receiver android:name="com.jerrellmardis.umbrella.receiver.WeatherStartupReceiver"> 

बदलते हैं

यह आपकी समस्या को ठीक करेगा।

मैंने इसे अपनी परियोजनाओं में से एक पर कोशिश की और यह शुरू नहीं हुआ।

+1

बताएं मुझे नहीं पता कि आपको समस्या क्यों आ रही है, लेकिन मुझे निश्चित रूप से अधिसूचनाएं प्राप्त करने के लिए मेरे BOOT_COMPLETED रिसीवर के लिए सक्षम और निर्यात करने की आवश्यकता नहीं है। – beekeeper

+0

मैंने इसके बारे में एंड्रॉइड दस्तावेज दोबारा पढ़ा है, और निश्चित रूप से वे कहते हैं कि सक्षम और निर्यात की गई दोनों संपत्तियां डिफ़ॉल्ट "सत्य" द्वारा सेट की गई हैं ... फिर मैं गलत हूं: एस। मुझे ऑरैकिकॉम के कोड – brent

+0

पर अजीब कुछ और दिखाई नहीं देता है, तो रिसीवर का नाम "वीहैरस्टार्टअप रिसीवर" में बदलें, भले ही कक्षा मेरे ऐप डीआईआर की जड़ पर न हो? वर्तमान निर्देशिका संरचना /receiver/WeatherStartupReceiver.java – oracleicom

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