Login Login
MORE

WIDGETS

Widgets

Wanted articles
Who is online?
Article tools

CSharp:Android App - Soluzioni avanzate

From Aino Wiki

Jump to: navigation, search

Google Drive

  • Doc, Google Drive API: [1]
  • Google Drive API for Xamarin.Android nuget.org
  • Tesi in cui si usa l'accesso a Google Drive usando le API, c'è anche un esempio di autenticazione usando API Rest Federico Gava unibo.it

Google Drive assegna per ogni file un codice identificativo. In questo modo è possibile caricare nella stessa directory molteplici file con lo stesso nome. L’univocità di un file all’interno di Google Drive infatti, non è data dal suo percorso e nome, come accade comunemente nei file system, ma dal suo ID.

Share resource

DOC: Xamarin.Essentials: Share Seguono stralci di codice usato realmente in una applicazione:

private void ImgBtnShareDocImg_Click(object sender, EventArgs e)
{
	string docFileNameFullPath = string.Empty;
	string currentItemFilePw = string.Empty;
	try
	{
		currentItemFilePw = TxtItemToSearch_FileName.Text.Trim();
		if (m_DictCurrItemDocFileLst.Count > 0
			&& !string.IsNullOrWhiteSpace(currentItemFilePw))
		{
			//Si zippa l'intera cartella di immagini assocaite all'item corrente (la ./Doc_Tmp)
			//e la si condivide nel passaggio successivo
			int compressionLevel = 0; //0 è il minimo per cui copia soltanto
			string password = null; //SharedSetupPar.SetupCfg.PWZipCloudRecoveryArchive;
			string strMessageOut = string.Empty;
			Java.IO.File extStorage = Android.OS.Environment.ExternalStorageDirectory;
			Java.IO.File dir = new Java.IO.File(extStorage.AbsolutePath);
			string tempFolder = string.Format("{0}/{1}/{2}", dir.AbsolutePath  //storage/emulated/0/
										, SharedSetupPar.TempRelFolder
										, SharedSetupPar.TempSubRelFolder);
			docFileNameFullPath = Path.Combine(tempFolder, currentItemFilePw + ".zip"); //Nome del file TXT con le password da custodire
			CommonHlp.ZipFiles(SharedSetupPar.SetupCfg.ArchiveDocPathTmp
								, docFileNameFullPath, string.Empty, password
								, ref strMessageOut, compressionLevel);
			//!!!!!!!!!!!
			ShareDocFile(docFileNameFullPath);
		}
	}
	catch (Exception ex)
	{
		CommonHlp.LogErr("ImgBtnShareDocImg_Click", ex.Message);
		AManager.MessageBox(this, "Error (ImgBtnShareDocImg_Click)", ex.Message);
	}
}
 
public async Task ShareDocFile(string docFileNameFullPath)
{
	try
	{
		if (File.Exists(docFileNameFullPath))
		{
			await Share.RequestAsync(new ShareFileRequest
			{
				Title = Title,
				File = new ShareFile(docFileNameFullPath)
			});
		}
		else
		{
			throw new Exception(string.Format("File to share '{0}' not found.", docFileNameFullPath));
		}
	}
	catch (Exception ex)
	{
		CommonHlp.LogErr("ShareDocFile", ex.Message);
	}
}

Nella UI di interfaccia si usa il seguente stralcio del XML usato nella vista indirizzata dall'Activity_mail.xml:

    <ImageButton
        android:id="@+id/ImgBtnShareDocImg"
        android:src="@android:drawable/ic_menu_share"
        android:contentDescription="@string/LblTxt_ImgBtnShareDocImg" 
        android:visibility="gone"
        android:layout_row="14"
        android:layout_column="0"
        android:layout_columnSpan="4"
        android:layout_height="110px"
        android:layout_width="110px"
        android:layout_marginLeft="220dip"
        android:layout_marginBottom="20dip" 
        />

Mappa e Link


C# | Android App | Windows Form


Visual Studio | MS SQL | Dizionario


Parole chiave:

Author