2011-12-14 14 views
6

मैं लॉन्चर डीबी से डेटा प्राप्त करना चाहता हूं।एंड्रॉइड शॉर्टकट, एक्सेस लॉन्चर डीबी

final String AUTHORITY = "com.android.launcher2.settings"; 
final Uri CONTENT_URI = Uri.parse("content://" + 
         AUTHORITY + "/favorites?notify=true"); 

Cursor c = contentResolver.query(uri, columns, null, null, 
      null); 

और

<uses-permission 
     android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/> 
<uses-permission 
     android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"/> 
<uses-permission 
     android:name="com.android.launcher.permission.READ_SETTINGS" /> 
<uses-permission 
     android:name="com.android.launcher.permission.WRITE_SETTINGS" /> 

लेकिन यह कहा जाता है कि logcat में:

Failed to find provider info for com.android.launcher2.settings 
+0

जाँच करें: http://www.google.com/support/forum/p/android/thread?tid = 74f6668ec87004b5 और hl = en –

उत्तर

8

लांचर हैंडसेट निर्माता जिम्मेदारी के तहत एक आवेदन है। प्राधिकरण हमेशा "com.android.launcher2.settings" नहीं है। हैंडसेट निर्माता अपने आप को फिर से लिख सकता है। यह जावा पैकेज के आधार पर "com.android.twlauncher" या कुछ भी हो सकता है।

आपको ऐसे प्रदाता की खोज करके सही अधिकार प्राप्त करने की आवश्यकता है जो पढ़ने/लिखने की अनुमति "com.android.launcher.permission.READ_SETTINGS" या "com.android.launcher.permission.WRITE_SETTINGS" घोषित करता है।

यह है कि ऐसा करने के लिए एक नमूना कोड है:

static String getAuthorityFromPermission(Context context, String permission){ 
    if (permission == null) return null; 
    List<PackageInfo> packs = context.getPackageManager().getInstalledPackages(PackageManager.GET_PROVIDERS); 
    if (packs != null) { 
     for (PackageInfo pack : packs) { 
      ProviderInfo[] providers = pack.providers; 
      if (providers != null) { 
       for (ProviderInfo provider : providers) { 
        if (permission.equals(provider.readPermission)) return provider.authority; 
        if (permission.equals(provider.writePermission)) return provider.authority; 
       } 
      } 
     } 
    } 
    return null; 
} 

आम तौर पर, ContentProvider और डीबी संरचना रखा जाता है, और आप एक ही प्रश्नों का उपयोग कर सकते हैं।

+0

@ जैक्सऑनएफ 1re यह चाल करता है या नहीं करता है? – Corey

+0

@ कोरी ने मेरी समस्या का समाधान नहीं किया;) – JacksOnF1re

0

मेरी नेक्सस 5 डिवाइस विभिन्न अनुमतियों के लिए आवश्यक

<uses-permission android:name="com.google.android.launcher.permission.READ_SETTINGS"/> 
<uses-permission android:name="com.google.android.launcher.permission.WRITE_SETTINGS"/> 

प्राधिकरण स्ट्रिंग है com.google.android.launcher.settings

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