2013-01-07 18 views
19

मैं एक (कानूनी) जासूसी कार्यक्रम लिख रहा हूं। मैं इस प्रोग्राम को लॉन्चर पर छिपाना चाहता हूं (ताकि कोई आइकन दिखाया न जाए)। मैंने AndroidManifest.xml से <category android:name="android.intent.category.LAUNCHER" /> लाइन को निकालने का प्रयास किया, लेकिन फिर उपयोगकर्ता पहले स्टार्ट मोड (कॉन्फ़िगरेशन) में एप्लिकेशन लॉन्च नहीं कर सकता। कोई विचार कौन है?एंड्रॉइड छुपा आवेदन

मैं यह कैसे कर सकता हूं?

उत्तर

31

आपको अपनी ऐप को सेवा में बनाना होगा।

http://developer.android.com/guide/components/services.html

MobiWare पर इस रूप में अच्छी तरह मिला:

आप मोबाइल के उपयोग पर नज़र रखने या उपयोगकर्ता ज्ञान के बिना कुछ डेटा इकट्ठा करना चाहते हैं, यह मदद कर सकता है यहाँ Androids बनाने सेवाओं घटकों पर ले आप।

चरण 1: कोई आइकन वाला एप्लिकेशन बनाएं। आम तौर पर, एक गतिविधि को प्रकट में निम्नानुसार घोषित किया जाता है।

 <activity 
     android:label="@string/app_name" 
     android:name="org.security.tracker.Tracker-activity" > 
     <intent-filter > 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

श्रेणी TAG को हटाएं, आपको अब ऐप आइकन नहीं मिलेगा। अब, आपको अब गतिविधि की आवश्यकता नहीं है। तो इस सेगमेंट को हटा दें। यदि आप सोच सकते हैं कि ऐप किसी ट्रिगर के बिना कैसे चलाएगा या एप्लिकेशन का प्रारंभिक बिंदु क्या है। यह समाधान है।

<!-- Start the Service if applicable on boot --> 
    <receiver android:name="org.security.tracker.ServiceStarter" > 
     <intent-filter > 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     </intent-filter> 
    </receiver> 

यह आपके कोड को ट्रिगर करता है जो वहां रिसीवर में लिखा गया है, जिससे आप अपने विचारों को लागू करने के लिए सेवा चला सकते हैं।

<service android:name="org.security.tracker.serviceCode" /> 

आप इस अनुमति को जोड़ने के लिए, फोन केवल रिबूट जब

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

आपका कोड चलाता है की जरूरत है।

चरण 2. लिखें अपने कोड

रिबूट पर, recevier सक्रिय होंगे, वहाँ आप अपनी सेवा शुरू कर सकते हैं।

class ServiceStarter extends BroadcastReceiver { 

@Override 
public void onReceive(Context _context, Intent _intent) { 

    Intent i = new Intent("com.prac.test.MyPersistingService"); 
    i.setClass(_context, ServiceCode.class); 
    _context.startService(i); 
    } 

} 
+6

एंड्रॉयड स्टूडियो संकलन नहीं होगा अगर वहाँ androidmanifest – Plugie

+0

में कोई लांचर श्रेणी कैसे सेवा यदि आप एप्लिकेशन लॉन्च नहीं कर पा रहे हैं, तो कोड निष्पादित होगा, एंड्रॉइड स्टूडियो केवल पहली बार संकलित नहीं होगा – abh22ishek

+0

ब्रॉडकास्ट रिसीवर में कोई कॉल नहीं प्राप्त जब तक कि मैं –

3

मैनिफ़ेस्ट फ़ाइल

+0

@AmitApollo, कोई सेवा बनाने की आवश्यकता नहीं हो जाती। – xoq

+5

ऐप कभी भी कैसे शुरू किया जाएगा? – Squonk

+2

@Squonk मैं एक विशेषज्ञ नहीं हूं लेकिन शायद यह एक प्रसारण रिसीवर है? –

0

से

<intent-filter > 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 

हटाने आप AndroidManifest.xml फ़ाइल से <category android:name="android.intent.category.LAUNCHER"/> निकाल सकते हैं।

लेकिन <category android:name="android.intent.category.LEANBACK_LAUNCHER"/> तो जोड़ने के लिए है कि एंड्रॉयड स्टूडियो अपने अनुप्रयोग (अभी तक लॉन्चर से छिपा हुआ) :) संकलन करने में सक्षम हो जाएगा याद रखें: डी

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