android - एक नेविगेशन गतिविधि शुरू करने का इरादा




navigation android-intent (3)

मेरे आवेदन में मेरे पास चयनित पीओआई में नेविगेशन शुरू करने का विकल्प है। असल में मैं जो चाहता हूं वह मेरे आवेदन से टर्न-बाय-टर्न नेविगेटर लॉन्च करना है। बात यह है कि मुझे नहीं पता कि कौन सा (यदि कोई है) नेविगेटर स्थापित है।

तो, सवाल यह है कि उपयोगकर्ता को नेविगेशन के लिए उपयुक्त गतिविधियों की सूची दिखाकर एक इरादा कैसे शुरू किया जाए, उसे चुनने दें कि वह किस का उपयोग करना चाहेगा? चयनित गतिविधि के लिए अतिरिक्त पैरामीटर पारित करने का एक तरीका ढूंढना अच्छा लगेगा (यह मेरे लिए एक समस्या की तरह लगता है, क्योंकि विभिन्न नेविगेशन ऐप्स उनके अतिरिक्त के लिए अलग-अलग नामों का उपयोग करते हैं, मुझे लगता है)।

यदि यह स्पष्ट नहीं है: मैं एक निर्णय लेने के विकल्प के साथ नेविगेशन के लिए उपयुक्त आवेदनों की एक सूची प्रदर्शित करने का एक तरीका ढूंढ रहा हूं।

संपादित करें: कार्यान्वयन यहां खोजें http://datamoil.blogspot.com/2011/04/android-universal-intent-to-start.html


प्रयत्न:

Intent intent = new Intent(Intent.ACTION_VIEW, 
    Uri.parse("google.navigation:q=New+York+NY")); 
startActivity(intent);

बुरी खबर यह है कि नेविगेशन के लिए मानक इरादा यूआरआई नहीं है।

हां, google.navigation यूआरआई मौजूद हैं, और एक ऐप इसका समर्थन करने का विकल्प चुन सकता है।

सबसे अच्छा समाधान मैं सोच सकता हूं:

  • ज्ञात ऐप्स के लिए स्पष्ट रूप से जांचें
  • Google.navigation को हुक करने वाले ऐप्स के लिए तत्काल जांचें: और शायद भौगोलिक: (लेकिन फिर आपको मानचित्र ऐप्स भी मिलते हैं)

आप PackageManage.queryIntentActivities का उपयोग कर संभावित निहित लक्ष्यों का आकलन कर सकते हैं


सबसे पहले मैंने बटन के श्रोता के अंदर अपने onTap विधि में उपयोग किया था:

Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("google.navigation:q=New+York+NY")); 
mContext.startActivity(i);

फिर मेनिफेस्ट में बस उपयोग करें:

<activity android:name=".LaunchGPS" android:screenOrientation="portrait">
  <intent-filter>       
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>
</activity>

यह किसी भी नेविगेटर ऐप को आपके फोन जैसे वीजेड नेविगेटर, Google या जो भी फोन लोड किया गया है, खोल देगा। पहली बार मेरे लिए पूरी तरह से काम किया। आशा है इससे तुम्हारी समस्या का समाधान हो गया होगा।






android-intent