0

Ich habe versucht, gemeinsame Einstellungen in ContentProvider 'verwenden .......... Es scheint, dass es ist nicht möglich .......Übergeben Sie Daten (String oder Int) zu Content Provider in Android ..... SharedPreferences versucht, aber scheint hier nicht zugänglich

Aber am Ende möchte ich eine ID (int oder Sting) von My_Activity zu Content Provider für das ich SharedP verwendet ...... Eine andere Alternative

ich rufe CP wie diese

PackageManager pm = getPackageManager(); 
    if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) 
    { 
     Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     i.putExtra(MediaStore.EXTRA_OUTPUT,MyFileContentProvider.CONTENT_URI); 
     startActivityForResult(i, CAMERA_RESULT); 
    } 
    else 
    { 
     Toast.makeText(getBaseContext(), "Camera is not available", Toast.LENGTH_LONG).show(); 
    } 

Antwort

0

der Zweck SharedPreferences Konfigurationsdaten zu speichern, Es ist kein Kommunikationskanal.

Wenn die ID, die Sie übergeben möchten, sich auf die auszuführende Aktion bezieht, können Sie sie als Abfrageparameter an Ihre Uri mit Uri.Builder.appendQueryParameter(String, String) anhängen.

Ihr Code wird wie folgt aussehen:

Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    i.putExtra(MediaStore.EXTRA_OUTPUT,MyFileContentProvider.CONTENT_URI 
    .buildUpon().appendQueryParameter("id", "123456").build()); 

Die Uri resultierende wird wie folgt aussehen:

content://YOUR.AUTHORITY/YOUR/PATH?id=123456 

In Ihrem ContentProvider Sie Uri.getQueryParameter(String) verwenden können, um den Parameterwert abzurufen.

+0

danke für die Antwort .... dieses ist am besten für Content Provider n wird das Problem lösen (Ich versuchte es) ...... um es einfach zu halten ..... In meinem Problem stattdessen ContentProvider ich verwendet Intents und mein Problem gelöst ... Cant upvote als Repo ist nicht 15 in Stackoverflow .... :) – Ketan