2014年9月30日 星期二

Android-筆記 GoogleMap 路徑規劃

 

	
        //markerClick事件
        @Override
	public boolean onMarkerClick(Marker marker) {
		
		if(marker.equals(myMaker)) return true;
		
		final String url = getDirectionsUrl(mMyLatLng, marker.getPosition());
		new Thread(new Runnable() {
			
			@Override
			public void run() {
				String data = getRouteJsonData(url);
				ParserTask parserTask = new ParserTask();
				parserTask.execute(data);
			}
		}).start();
		
		return true;
	}


        private class ParserTask extends AsyncTask>>> {
		@Override
		protected List>> doInBackground(String... jsonData){
			JSONObject jObject;
			List>> routes = null;
			try {
				jObject = new JSONObject(jsonData[0]);
				DirectionsJSONParser parser = new DirectionsJSONParser();

				// Starts parsing data
				routes = parser.parse(jObject);
		 	} catch (Exception e) {
		 		e.printStackTrace();
		 	}
			return routes;
		}
		 
		@Override
		protected void onPostExecute(List>> result) {
			ArrayList points = null;
			MarkerOptions markerOptions = new MarkerOptions();
			PolylineOptions lineOptions = null;
			
			// Traversing through all the routes
			for (int i = 0; i < result.size(); i++) {
				points = new ArrayList();
				lineOptions = new PolylineOptions();

				// Fetching i-th route
				List> path = result.get(i);

				// Fetching all the points in i-th route
				for (int j = 0; j < path.size(); j++) {
					HashMap point = path.get(j);

					double lat = Double.parseDouble(point.get("lat"));
					double lng = Double.parseDouble(point.get("lng"));
					LatLng position = new LatLng(lat, lng);

					points.add(position);
				 }
				 
				 // Adding all the points in the route to LineOptions
				 lineOptions.addAll(points);
				 lineOptions.width(10);  //導航路徑寬度
				 lineOptions.color(0xfff42046); //導航路徑顏色
		    }
			if(mPolyline != null) mPolyline.remove();
			mPolyline = mGoogleMap.addPolyline(lineOptions);
		}
	}



        public static String getDirectionsUrl(LatLng origin, LatLng dest) {
		String url="";
		String str_origin = "origin=" + origin.latitude + "," + origin.longitude;
		String str_dest = "destination=" + dest.latitude + "," + dest.longitude;
		String sensor = "sensor=false";
		String mode = "mode=walking";
		url = "https://maps.googleapis.com/maps/api/directions/json?" + str_origin + "&"
				+ str_dest + "&" + sensor + "&" + mode;
		
		return url;
	}
	
	public static String getRouteJsonData(String strUrl) {
		String data = "";
		InputStream iStream = null;
		HttpURLConnection urlConnection = null;
		try {
			URL url = new URL(strUrl);

			// Creating an http connection to communicate with url
			urlConnection = (HttpURLConnection) url.openConnection();

			// Connecting to url
			urlConnection.connect();

			// Reading data from url
			iStream = urlConnection.getInputStream();

			BufferedReader br = new BufferedReader(new InputStreamReader(iStream));

			StringBuffer sb = new StringBuffer();

			String line = "";
			while ((line = br.readLine()) != null) {
				sb.append(line);
			}

			data = sb.toString();

			br.close();

		} catch (Exception e) {
			Log.d("Exception while downloading url", e.toString());
		} finally {
			
			try {
				iStream.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
			
			urlConnection.disconnect();
		}
		return data;
	}



2014年9月25日 星期四

Android-筆記 Google Play 開發人員發佈協議

Google Play 開發人員發佈協議

上次修訂日期:2014 年 9 月 25 日 (查看封存版本)

定義

授權行動通訊業者:經授權收費的行動網路業者。發佈者透過授權業者提供的網路銷售「產品」給「裝置」使用者時,需支付授權行動網路業者一定的發佈費用。
品牌特徵:雙方在任何期間各自擁有 (或取得授權) 的商標名稱、註冊商標、服務標誌、標誌、網域名稱及其他獨特品牌特徵。
開發人員或您:向「商店」註冊並獲得核准,可依據「本協議」發佈「產品」的任何個人或公司。
開發人員帳戶:發給「開發人員」的發佈帳戶,讓他們能夠透過「商店」發佈「產品」。
開發人員控制台:Google 為開發人員提供的控制台或其他線上工具,可用來控管「產品」的發佈情形和相關的管理功能。
裝置:任何可存取「商店」(詳見本協議之相關定義) 的裝置。
Google:Google Inc.,註冊於美國德拉瓦州的股份公司,總部位在 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States;Google Ireland Limited,註冊於愛爾蘭的公司,總部位在 Gordon House, Barrow Street, Dublin 4, Ireland;Google Commerce Limited,註冊於愛爾蘭的公司,總部位在 Gordon House, Barrow Street, Dublin 4, Ireland;以及 Google Asia Pacific Pte. Limited,註冊於新加坡的公司,總部位在 8 Marina View, Asia Square 1 #30-01, Singapore 018960。
付款帳戶:「付款處理者」獲得「開發人員」授權代為收取及轉匯該「開發人員」透過「商店」售出的「產品」費用時,發給該「開發人員」的金融帳戶。「開發人員」必須獲得「付款處理者」核准,才能取得「付款帳戶」,同時必須維持良好帳戶紀錄,才能針對透過「商店」發佈的「產品」收費。
付款處理者:如《開發人員計劃政策》所述,「付款處理者」是指經 Google 授權提供付款處理服務的任何一方,可支援擁有「付款帳戶」的「開發人員」針對透過「商店」發佈的「產品」向使用者收費。
產品:透過「商店」發佈的軟體、內容和數位資產。
商店:Google 所建立和經營的市集,可讓特定國家/地區中的註冊「開發人員」直接向「裝置」使用者發佈「產品」。

1. 簡介

1.1 「商店」是一個開放大眾使用的網站;「開發人員」可在該網站發佈「裝置」專用「產品」。如要在「商店」中發佈「產品」,您必須取得有效的「開發人員帳戶」,並維護該帳戶。
1.2 如要針對您的「產品」收取費用,您必須另外向 Google 授權的「付款處理者」取得有效的「付款帳戶」,並負責該帳戶的維護及管理作業。

2. 接受本協議

2.1 「Google Play 開發人員發佈協議」(簡稱「本協議」) 構成您與 Google 之間,就您使用「商店」發佈產品之行為的法律約束合約。您瞭解 Google 會完全以您的名義 (而非 Google 的名義) 顯示「產品」並提供使用者下載及購買。如要使用「商店」發佈產品,您必須同意接受「本協議」並在「開發人員控制台」中提供完整正確的資訊。如果您不接受「本協議」,將無法在「商店」中發佈「產品」。
2.2 除非 Google 認定您是信譽良好的「開發人員」,否則您不得使用「商店」發佈「產品」,亦不得接受「本協議」。如果您 (a) 不是信譽良好的「開發人員」,或者 (b) 是遭到美國或其他國家/地區 (包括您的所在國家/地區,以及您使用 Android 軟體的國家/地區) 法律禁止使用 Android 軟體的個人或實體,則「本協議」將自動終止。
2.3 如果您同意代表您的雇主或其他實體接受「本協議」之約束,即表示您聲明及擔保,您擁有完整合法的權利,可使您的雇主或該等實體受到「本協議」之約束。如果您沒有必要的授權,則不得代表雇主或其他實體接受「本協議」或使用「商店」。

3. 定價和付款。

3.1 「本協議」所規範的「產品」包括發佈者免費提供及收取費用的「產品」。如要就您的「產品」收取費用,您必須具備有效的「付款帳戶」,並接受此帳戶與「付款處理者」之間的個別協議。如果您在申請使用「商店」之前,已經向「付款處理者」取得「付款帳戶」,您必須遵守「付款帳戶」的條款及細則;如有與「本協議」抵觸之處,則應優先遵守「本協議」所闡述之條款。
3.2 系統將以您的名義向使用者顯示「產品」,並由您自行設定價格。Google 可在「商店」向使用者顯示的價格中納入適用的稅額。您可以採用「付款處理者」允許的貨幣單位設定您的「產品」定價。Google 可根據使用者之所在地區提供「產品」當地的貨幣定價,但是不需要就貨幣匯率或轉換的準確性承擔任何責任。
3.3 系統會在您透過「商店」銷售的「產品」紀錄中,將您設為該產品的商家。您所設定的「產品」定價將決定您收到的款項金額。售價將根據「付款處理者」以及「授權行動通訊業者」(如果有的話) 所規定的比率,另行收取「交易費用」,如下文所定義。如果 (當地) 適用法規要求 Google、「付款處理者」或「授權行動通訊業者」針對其中任何一方所支付或收取的款項預先扣除任何稅額 (簡稱「預扣稅額」),Google 也會在售價中扣除與「預扣稅額」相等的金額。為避免疑慮,「預扣稅額」包括 (但不限於) 跨境付款或電信稅須支付的預扣稅。剩餘款項 (售價扣除「交易費用」和「預扣稅額」等額金額) 將會退還給您。「交易費用」之相關說明已載於此文,且 Google 可能會不定時修改。您有責任向 Google 提供任何適用稅則地區的居住證明。如果 Google 或其服務供應商未收到相關文件,Google 會依照當地規定之預扣稅率來預扣款項。
3.4 「開發人員」有責任判斷「產品」是否需要課稅以及適用的稅率,以供「付款處理者」針對銷售「產品」的各個稅收管轄區收取稅款。「開發人員」必須將稅款轉匯給適當的稅務主管機關。如果 (當地) 適用法規要求 Google、「付款處理者」或「授權行動通訊業者」判斷、核算並支付適用稅率,則 Google、「付款處理者」或「授權行動通訊業者」(而非「開發人員」) 有責任核算及收取稅款,並將稅款轉匯給適當的稅務主管機關。如果 Google (根據當地適用法律) 收取並轉匯客戶付款的加值稅,且轉匯款項達到該筆客戶付款所需支付的加值稅額度,則 Google 不會將這些款項撥給「開發人員」。如本節所述,如果 Google 必須收取並轉匯稅款,「開發人員」和 Google 必須界定「開發人員」向 Google 提供的交易課稅標的為何,而「開發人員」需遵守這項商品或服務的相關稅務規範。
3.5 您也可選擇發佈免費的「產品」。如果「產品」不需收費,則您無需支付「交易費用」。如果您發佈的「產品」初始可供免費下載,除非費用與其他版本相關,否則您日後不得就該「產品」開始向使用者收取任何費用。「付款處理者」必須處理「開發人員」透過「商店」發佈「產品」的任何版本所收取的所有費用。
3.6 您必須負責支援您的「產品」。如果從 Google Play 下載及安裝的應用程式發生任何瑕疵或執行問題,買家會依照說明與開發人員聯絡。您必須對相關問題全權負責,Google 無須負責承擔或處理您「產品」的支援和維護工作,以及處理所有與您「產品」相關的申訴。您必須提供有效且正確的聯絡資訊,並加以維護。這些資訊會顯示在「商店」中各應用程式的詳細資訊網頁上,以便需要客戶支援或採取法律行為的使用者與您聯絡。針對付費「產品」或應用程式內交易,您必須在三 (3) 個工作天內回覆客戶的支援詢問,並在 24 小時內回覆 Google 註明需緊急處理的任何支援或「產品」問題。如果您的「產品」沒有提供適當的資訊或支援,可能會導致「產品」的評分、曝光率與銷售量偏低、出現帳單爭議,或是令「產品」從「商店」下架。
3.7 授權退款。您授權 Google 可代表您退還「產品」或應用程式內交易定價的全額款項,惟買家需在購買後的 48 小時內提出退款要求。在任何其他情況下,則適用「付款處理者」關於退款的標準條款及細則。「使用者」的退款不包含原先購買「產品」時向使用者收取的稅額。當「付款處理者」收到帳單爭議,且爭議「產品」的售價低於 $10 美元時,可自動拒付「開發人員」費用,並另外收取處理費用;除非使用者提出多項爭議,且該使用者過去的爭議紀錄有異常情況。如果「產品」定價超過 $10 美元,「付款處理者」將依據其標準政策處理拒付要求。
3.8 重新安裝。使用者可任意重新安裝「商店」上發佈的「產品」,無任何安裝次數限制,但如果您依據第 7.1 節的第 (i)、(ii)、(iii) 或 (iv) 條規定將「產品」從「商店」中移除,使該「產品」全面自「商店」下架,則使用者無權亦無法重新安裝這類受影響的「產品」。

4. 您對「商店」的使用行為

4.1 除了您於下方第 5 節賦予 Google 的授權以外,Google 同意,依據「本協議」,Google 並未向您 (或您的授權者) 取得「產品」的任何權利、所有權或利益,包括這類「產品」既有的智慧財產權。
4.2 您同意僅將「商店」用於 (a)「本協議」以及 (b) 相關管轄地的任何適用法律、法規或一般接受的實務或準則 (包括美國或其他相關國家/地區的資料或軟體出口相關法律) 所允許之用途。
4.3 您同意在使用「商店」發佈「產品」時,保護使用者的隱私權和合法權利。如果使用者向您提供使用者名稱、密碼、其他登入資訊或個人資訊,或如果您的「產品」存取或使用這些資訊,您必須告知使用者您的「產品」將能夠存取這些資訊,並為這些使用者提供合法的隱私權聲明與保護。此外,您的「產品」僅可將該等資訊用於使用者授權的限定用途。如果您的「產品」存有使用者提供的個人資訊或敏感資訊,則「產品」必須使用安全的儲存方式,而且只能儲存必要的資訊。不過,如果使用者選擇與您制定個別協議,允許您或您的「產品」儲存或使用與「產品」(不包括其他產品或應用程式) 擁有直接關係的個人資訊或敏感資訊,則您對這類資訊的使用應遵守該項協議的條款。如果使用者提供「Google 帳戶」資訊給您的「產品」,您的「產品」仍需取得使用者授權,才能使用該項資訊存取使用者的「Goolge 帳戶」,且該項資訊僅能用於使用者授權的限定用途。
4.4 禁止行為。您同意不會在使用「商店」時從事或參與任何干擾、中斷、破壞或是未經授權即存取任何第三方 (包括但不限於 Android 使用者)、Google 或任何行動網路業者的裝置、伺服器、網路或其他系統或服務的行為。此一規定亦適用於產品的開發或發佈活動。您不得運用從「商店」取得的客戶資訊,在「商店」以外的地方銷售或發佈「產品」。
4.5 其他商店。凡是「產品」具有任何用於推廣其他商店之用途,藉此引導使用者透過這類替代性管道發佈 Android 軟體應用程式或遊戲,一概禁止在「商店」中發佈或提供。
4.6 您同意針對您透過「商店」發佈的任何「產品」(包括使用任何 Google Play API),以及因為您的發佈行為而引致之後果 (包括 Google 可能遭受的損失或損壞),承擔全部責任,且 Google 對您或任何第三方無需承擔任何責任。這些後果包括 (但不限於) 與您產品相關的產品責任、消費者保護和/或智慧財產權聲明。
4.7 您同意就所有違反「本協議」所述義務、任何適用的第三方合約或服務條款,或任何適用法律或法規之行為,以及因為該等違反行為而引致之後果 (包括 Google 或任何第三方可能遭受的損失或損壞),承擔全部責任 (且 Google 對您或任何第三方無需承擔任何責任)。
4.8 產品評分。「商店」允許使用者為「產品」評分及評論。使用者只能針對自己在「商店」中下載的「產品」進行評分。Google 會根據「產品」評分決定「產品」在「商店」中的位置,並可酌情變更「產品」的位置。如果您的「產品」尚未收到使用者評分,「商店」也可以給予一個綜合評分。「開發人員綜合評分」是 Google 根據您的紀錄,自行給予的「產品」品質評分。如果您是沒有任何「產品」紀錄的新「開發人員」,Google 可以使用或發佈效能評量 (例如解除安裝率和退款率),辨識或移除不符 Google 接受標準的「產品」。Google 保留權利,可酌情決定向使用者顯示「產品」的方式。
您可能不同意某些使用者對您的「產品」的評分。如果您對這類評分有任何疑問或疑慮,請與 Google 聯絡
4.9 行銷您的「產品」。您必須負責將「產品」上傳至「商店」、向使用者提供必要的「產品」資訊和支援,以及精確公開必要的安全性授權,以確保「產品」在使用者「裝置」上運作正常。如果「產品」未正確上傳,「商店」不會予以發佈。
4.10 受限制的內容。所有在「商店」中發佈的「產品」均需遵守《開發人員計劃政策》。

5. 授權

5.1 您賦予 Google 非專屬、全球性、免版權的授權,讓 Google 可基於與 (i)「商店」的經營行銷、(ii) 支援「產品」使用行為的裝置和服務行銷活動,以及 (iii) 改善 Android 平台相關的管理及展示目的,複製、執行、顯示與使用「產品」。
5.2 您賦予 Google 非專屬、免版權的授權,讓 Google 可以依照「開發人員控制台」中指定的方式發佈「產品」。
5.3 可為履行「本協議」所規定之義務和權利,雇用顧問和其他約聘人員,惟這類顧問和約聘人員必須遵循 Google 所有義務。「本協議」終止之後,Google 會停止發佈您的「產品」,但是 Google 可以保留與使用「產品」的副本,以支援「商店」和 Android 平台。
5.4 您賦予使用者全球性、非專屬的永久授權,讓使用者可以在「裝置」上執行、顯示和使用「產品」。您也可以選擇為您的「產品」另外提供一份獨立的使用者授權協議 (EULA),以取代前述聲明,規範使用者對「產品」的權利。
5.5 您聲明並擔保,您擁有「產品」本身及其中所有內容的智慧財產權,包括所有必要的專利、商標、商業機密權、版權或其他專屬權利。如果您使用第三方內容,您聲明並擔保,您有權在「產品」中發佈第三方內容。您同意,您不會將任何具有版權、受商業機密保護或受第三方專屬權利規範的內容 (包括專利、隱私權及公關宣傳權) 提交給「商店」,除非您是這類權利的擁有者,或是這類權利擁有者已授權您提交內容。

6. 品牌特徵與宣傳

6.1 每一方都應該擁有與其「品牌特徵」相關的全部權利、所有權和利益,包括但不限於所有智慧財產權。除了「本協議」中明確規定的有限範圍以外,任何一方皆不得將另一方「品牌特徵」的任何權利、所有權或利益 (包括但不限於任何暗示授權) 授予另一方,而另一方也不會取得這類權利、所有權或利益。根據「本協議」條款及細則之規定,「開發人員」在「本協議」的「效期」期間,賦予 Google 及其關係企業非專屬、免版權的有限授權,讓 Google 可以基於透過「商店」發佈與銷售「開發人員產品」或完成「本協議」規定義務之目的,在線上或行動裝置上顯示由「開發人員」提交給 Google 的「開發人員品牌特徵」。如果「開發人員」中止在「商店」中發佈特定「產品」,Google 將依據本節 (第 6.1 節) 之規定,停止使用該「產品」的「品牌特徵」,惟如果 Google 需要使用該「品牌特徵」履行第 3.8 節之條款,則不在此限。「本協議」的所有內容皆未授權「開發人員」使用 Google 的任何商標名稱、註冊商標、服務標誌、標誌、網域名稱或其他獨特品牌特徵。
6.2 公關宣傳。為了提升「商店」中「開發人員產品」的曝光量、發佈量及銷售量,並向使用者宣傳他們可透過相關裝置和其他 Google 服務使用這類產品,除了第 6.1 節所賦予之授權,Google 及其關係企業可在下述情況納入由「開發人員」提交給 Google 的「開發人員品牌特徵」:(i) 在「商店」及 Google 旗下的任一線上或行動資產內;(ii) 在「商店」以外的線上、行動通訊管道、電視、戶外廣告 (例如看板廣告) 及印刷廣告中 (必須與其他「商店產品」一同顯示);(iii) 公告「產品」的供應情形時;(iv) 在簡報中;以及 (v) 在線上或行動裝置上所顯示的客戶名單中 (包括但不限於,Google 網站所發佈的客戶名單)。如果「開發人員」中止在「商店」中發佈特定「產品」,Google 會停止將該「產品」的「品牌特徵」用於上述行銷目的。Google 在「本協議」的「效期」期間,賦予「開發人員」全球性、非專屬、免版權的有限授權,讓「開發人員」可以基於行銷目的,使用 Android 的「品牌特徵」,惟使用時需遵循「Android 品牌指南」。

7. 產品下架

7.1 自行下架。您隨時可以將您的產品下架,未來不再透過「商店」提供給使用者,但是所有已經透過「商店」發佈的「產品」皆需遵守「本協議」與「付款處理者」的「付款帳戶」服務條款,包括但不限於退款規定。如果您選擇將某項產品下架,不再透過「商店」提供,這並不會 (a) 影響先前購買或下載「產品」的使用者授權;(b) 將使用者先前購買或下載所儲存的「產品」應用程式從「裝置」或任何「商店」部分中移除;或是 (c) 就使用者先前購買或下載的「產品」或服務,修改您供應或支援的義務。即便如此,如果您因以下原因將任何「產品」從「商店」中移除,並以書面通知向 Google 說明移除原因,Google 一律會停止在「商店」的任何部分 (包括但不限於「商店」為使用者儲存其先前所購買或下載的應用程式的部分) 中維護這類產品:(i)「產品」涉及或確實侵犯他人版權、商標、商業機密、商業包裝、專利或其他智慧財產權;(ii)「產品」涉及或確實造成誹謗;{iii)「產品」涉及或確實違反任何第三方的公關宣傳權或隱私權;或是 {iv)「產品」遭指稱或經判定未遵循適用法律。
如果您依據第 7.1 節的第 (i)、(ii)、(iii) 或 (iv) 條規定將某項「產品」從「商店」中移除,且使用者從購買這類「產品」至「產品」遭到撤除當日不到一年,這類產品將從「商店」所有部分中移除,一旦 Google 提出要求,您必須將這類受影響的「產品」款項全額 (扣除相關交易的信用卡或付款處理所引致的「交易費用」) 退還給受影響的使用者。
7.2 Google 下架。Google 無義務監控「產品」及其內容,但是如果您通知 Google,或是 Google 自行發現並研判「產品」本身、「產品」的任何內容或您的「品牌特徵」出現下述任一情形,Google 可酌情將「產品」從「商店」中移除或重新分類「產品」:(a) 侵犯任何第三方的智慧財產權或任何其他權利;(b) 違反任何適用法律,或是受到法院強制令限制;(c) 內含色情或猥褻內容,或是違反 Google 的代管政策或其他服務條款 (Google 可不時酌情更新);(d) 遭您不當發佈;(e) 可能導致 Google 或「授權行動通訊業者」承擔法律責任;(f) 經 Google 認定內含病毒,或經認定為惡意軟體、間諜軟體或任何會對 Google 或「授權行動通訊業者」網路造成負面影響者;(g) 違反「本協議」或「開發人員專用的開發人員計劃政策」所闡述之條款;或是 (h)「產品」的顯示對 Google 伺服器的完整性造成影響 (亦即,使用者無法存取這類內容或在存取時遭遇困難)。Google 保留權利,可酌情中止與禁止「開發人員」使用「商店」。如果您的「產品」包含會嚴重損害使用者裝置或資料的元素,Google 可酌情將「產品」停用或從已安裝的裝置上移除。如果您確實違反任何保密協議或其他與「商店」或 Android 平台相關的協議,Google 可暫停或終止發佈您的「產品」。
為將「商店」軟體用戶端應用程式放置在「裝置」中,Google 與裝置製造商及「授權行動通訊業者」簽有發佈協議。這些發佈協議可能會規定您強制移除違反「裝置」製造商或「授權行動通訊業者」服務條款的「產品」。
如果您的「產品」因含有瑕疵或惡意內容、侵犯他人智慧財產權、構成誹謗、違反第三方的公關宣傳權或隱私權或未遵循適用法律而遭到強制移除,且使用者從購買這類「產品」至「產品」遭到撤除當日不到一年:(i) 您必須將所收到的款項全額以及所有相關費用 (拒付與付款交易費用) 退還,且 (ii) Google 可酌情從您日後的銷售所得中,扣留您在第 (i) 條所述之款項金額。

8. 您的開發人員憑證

8.1 您同意,凡是 Google 核發予您或您自行選擇的開發人員憑證,您有義務確保其機密性;而您依據這類開發人員憑證所開發的應用程式,其相關責任完全由您承擔。Google 可以限制核發給您或您的任職公司或組織的「開發人員帳戶」數量。

9. 隱私權與資訊

9.1 為持續創新與改善「商店」,Google 可從「商店」和「裝置」收集特定使用統計資料,包括但不限於「商店」和「裝置」使用方式的相關資訊。
9.2 為了提供使用者和「開發人員」更優質的「商店」服務環境,Google 會針對收集到的資料進行不具識別性的整體檢驗,並依據《Google 隱私權政策》管理這類資料。為了改善「產品」品質,您可以向 Google 提出書面要求,索取某些特定的彙總資料。

10. 終止本協議

10.1 除非您或 Google 依據下列所述之條款終止「本協議」,否則「本協議」將持續具有效力。
10.2 如果您想終止「本協議」,您必須在三十 (30) 天前提供 Google 書面通知 (除非「本協議」根據第 14.1 條款終止),並停止使用任何相關的開發人員憑證。
10.3 如果發生下列任一情形,Google 可以隨時終止「本協議」:
(A) 您違反「本協議」的任何條文;或
(B) 法律規定 Google 終止「本協議」;或
(C) 您不再具有授權「開發人員」的身分;或
(D) Google 決定停止提供「商店」服務。

11. 免責聲明

11.1 您明確瞭解並同意,就您對「商店」的使用行為,您必須自行承擔全部風險,且「商店」是依「現況」和「現有」基礎提供,不提供任何種類的擔保。
11.2 就您對「商店」或任何從「商店」下載或取得之「產品」的使用行為,您必須承擔全部責任與風險;就任何因為這類使用而引致之電腦系統或其他裝置的損害或資料遺失,您必須承擔全部責任。
11.3 Google 進一步明確聲明,Google 不提供任何種類的明示或暗示擔保或條件,包括但不限於商業適售性、特定用途適用性,以及不侵害他人權利之擔保或條件。

12. 責任限制

12.1 您明確瞭解並同意,Google、其子公司與關係企業以及其授權者,就您對「商店」或任何從「商店」下載或取得之「產品」的使用行為而引致之直接性、間接性、偶發性、特殊性、衍生性或懲戒性損害 (包括資料損失),無需承擔任何責任,無論是基於任何法律論述,亦無論 Google 或其代表是否知道這類損害之可能性。

13. 補償

13.1 在法律允許的最大範圍內,您同意就任何因為下述原因而引致之第三方權利主張、法律行動、法律告訴或訴訟程序,以及任何損失、索賠要求、損害、費用和支出 (包括合理的律師費用),向 Google、其關係企業和相關董事、主管人員、員工和代理機構,以及「授權行動通訊業者」做出辯護與補償,使其不致遭受損失:(a) 您的「商店」使用行為違反「本協議」,以及 (b) 您的「產品」侵犯任何版權、商標、商業機密、商業包裝、專利或他人智慧財產權,或是誹謗他人,或是侵犯他人公關宣傳權或隱私權。
13.2 在法律允許的最大範圍內,您同意就任何因您在「商店」中的「產品」發佈行為產生的相關稅金而引致之第三方申訴、法律行動、法律告訴或訴訟程序,以及任何損失、索賠要求、損害、費用和支出 (包括合理的律師費用),向受影響的「付款處理者」(可能包括 Google 和/或第三方)、其關係企業和相關董事、主管人員、員工以及代理機構,做出辯護與補償,使其不致遭受損失。

14.協議之變更

14.1 Google 可以隨時變更「本協議」,但是必須透過電子郵件通知「開發人員」,並說明修訂內容為何。Google 也會在網頁和/或「開發人員控制台」上張貼通知,說明修訂事項。請定期查看「本協議」,並確認是否有任何修訂通知。變更不會溯及既往。就通知張貼後甫成為「開發人員」者,變更會立即生效,而「開發人員」會被視為已接受修訂;就現有的「開發人員」,變更會於通知中指定的日期 (修訂內容公告後 30 日以上) 起開始生效,惟法律規定的變更會立即生效。如果「開發人員」不同意「本協議」的修訂內容,則必須終止使用「商店」,這是「開發人員」唯一且專屬的補救措施。您同意,繼續使用「商店」即代表您同意接受「本協議」的條款修訂內容。

15.一般法律條款

15.1 「本協議」構成您與 Google 之間的完整法律協議,用於規範您對「商店」的使用行為,且完全取代任何您與 Google 先前就「商店」所簽訂之協議。
15.2 您同意,如果 Google 未行使或執行「本協議」所闡述 (或 Google 在任何適用法律下所享有) 之任何法律權利或補救措施,不應構成權利之正式拋棄,且 Google 仍然可以行使這類權利與補救措施。
15.3 如果「本協議」的任何條文遭到任何具管轄權之法院判定為不可強制執行或無效,則該條文應在不影響「本協議」其他條文的情況下,將自「本協議」中移除。「本協議」的其他條文仍然具有完整效力與作用。
15.4 您瞭解並同意,Google 子公司的每位成員皆為「本協議」的第三方受益人,且這些公司有權直接執行「本協議」,並根據「本協議」條文之規定主張相關利益 (或有利於這些公司的權利)。除此之外,任何其他人或公司均不是「本協議」的第三方受益人。
15.5 出口限制。「商店」的「產品」可能會受到美國出口法律或法規的規範。您必須遵循所有適用於您的「產品」發佈或使用行為的國內和國際出口法律及法規。這些法律包括對於目的地、使用者和用途的限制。
15.6 未經另一方書面許可,您或 Google 均不得將「本協議」所賦予之權利移轉或出讓予他人,亦不得將「本協議」所賦予之責任與義務委派予他人。
15.7 「本協議」以及您與 Google 因為「本協議」而產生的關係,應依據美國加州法律加以解釋,並受其管轄,而不採用其衝突法之規定。您與 Google 同意服從美國加州聖克萊拉郡聯邦法院或地方法院的專屬管轄權,解決任何因為「本協議」而引致、與「本協議」相關,或與您和 Google 基於「本協議」的關係所產生的法律事務。儘管如此,您同意 Google 可以向任一管轄地的法院申請救濟命令。
15.8 「本協議」到期或終止後,第 5、6.1 (僅限用於讓 Google 履行第 3.8 節之條款)、7、11、12、13 和 15 節所述之義務條款仍然具有效力。

2014年9月22日 星期一

Android-筆記 讀取 Asset 資料夾的 Json 檔

 
public static void copyProtectionLatlonJson(Context context)
 {
  try 
  {
   InputStream mInput = context.getAssets().open("protection.json");
   if(mInput == null || mInput.equals(""))
   {
    throw new RuntimeException("Inputstream is null");
   }
   else
   {
    String content = InputStreamTOString(mInput);
    if (content != null)
    {
     AESharedPreferences.saveProtectionLatlonJson(context, content);
    }
   }
   mInput.close();
  } 
  catch (IOException e) 
  {
   e.printStackTrace();
  }
 }
 
 private final static int BUFFER_SIZE = 4096*4;
 private static String InputStreamTOString(InputStream in)
 {  
  try 
  {
         ByteArrayOutputStream outStream = new ByteArrayOutputStream();  
         byte[] data = new byte[BUFFER_SIZE];  
         int count = -1;  
   while((count = in.read(data,0,BUFFER_SIZE)) != -1)  
   {
    outStream.write(data, 0, count); 
   }
   data = null;  
         return new String(outStream.toByteArray(),"ISO-8859-1");
  } 
  catch (IOException e) 
  {
   e.printStackTrace();
  }
  return "";
    }

Android-筆記 檢查網路連線

 public static boolean checkNetWork(Context context) {
  ConnectivityManager conManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
  NetworkInfo networInfo = conManager.getActiveNetworkInfo();
  
  if (networInfo == null || !networInfo.isAvailable()) return false;

  return true;
 }

Android-筆記 取得系統語言

取得手機系統目前顯示的語系。
Locale.getDefault().getDisplayLanguage()   ---> English

Locale.getDefault().getLanguage()       ---> en      
Locale.getDefault().getISO3Language()   ---> eng 
Locale.getDefault().getCountry()        ---> US 
Locale.getDefault().getISO3Country()    ---> USA 
Locale.getDefault().getDisplayCountry() ---> United States 
Locale.getDefault().getDisplayName()    ---> English (United States)

取得手機系統出廠語系和國家。
Resources res = context.getResources();
Configuration conf = res.getConfiguration();
String language = conf.locale.getLanguage()

改變當下程式的語系。
Resources res = context.getResources();
Configuration conf = res.getConfiguration();
DisplayMetrics dm = res.getDisplayMetrics();
conf.locale = Locale.ENGLISH;
res.updateConfiguration(conf, dm);

2014年9月20日 星期六

Android-筆記 ListView 下拉刷新

ListView 要實現下拉刷新

可以使用 addHeaderView 來當頂部

再去註冊監聽即可


參考文件:
http://www.jb51.net/article/35275.htm

源碼下載:
https://drive.google.com/file/d/0B9WIup6ZuZUsZGJLYnJDeDlodEU/edit?usp=sharing

2014年9月19日 星期五

行動廣告-名詞解釋

Push名詞

Remote Push
遠程推撥。
其實是 iOS 官方文件,有本地推撥和遠程推撥的說法 (Local Push / Remote Push)
所以有些開發者會用 Remote Push,來當作 APNS 或 GCM 的代名詞。


APNS
Apple Push Notifications Service(Apple推撥通知服務)。
Apple提供的Remote Push。
相關文件

GCM
Google Cloud Messaging(Google雲端推撥)。
Google提供的Remote Push。
相關文件

Other Push
其餘第三方提供的推撥服務,例如:
Facebook的Parse
Kii Cloud Push
百度、亞馬遜、Airship等

RD名詞

SDK
Software Development Kit (軟體開發工具包)。
通常是指開發一個軟體或是服務的時候,會用到的檔案或是軟體。

API
Application Programming Interface (應用程式介面 / 應用程式接口)。
泛指軟體開發的時候,如何和資料庫或是其他軟體溝通的描述。

POI
Point Of Interest (座標點)。
泛指地圖上的座標或是標籤。

OTA
Over-The-Air Technology (空中下載技術)。
指更新行動裝置上的資料或是程式的技術。

IOT
Internet Of Things (物聯網)。
網際網路的下一個概念,將全部的裝置透過有線或無線傳輸技術(包含網際網路、紅外線、感測計等等),結合變成一個巨大的完整網路。

DSP
Demand Side Platform (廣告需求方平台)。
廣告投放的買方。

SSP
Supply Side Platform (廣告提供方平台)。
廣告版位的賣方。

RTB
Real Time Bidding (即時競價)。
搓合廣告買賣雙方交易的一種機制。

PR名詞

Media Kit
文宣包。通常是指介紹產品的簡報、PDF等各種形式的電子檔或網站,或是媒體稿、新聞稿等素材,都可以稱為 Media Kit,主要是讓外部媒體方便取材報導或是宣傳。

PM/HR名詞

KPI
Key Performance Indicator (關鍵績效指標)

MBO
Management by Objectives (目標管理)

AD名詞

Click
點擊數。指使用者點擊廣告的動作。

Impressions
印象、展示量。指廣告露出在使用者瀏覽裝置上。

CTR
Click Through Rate - 點擊率 (公式:Click / Impressions),用來檢視廣告對於使用者的績效。

CR
Conversion Rate - 轉換率(成交數 / 點擊數),用來檢視使用者在點擊之後,是否去執行預期的動作(例如安裝程式或是消費購物),通常配合點擊率,來過濾廣告素材的優劣或是策略。

CPC
Cost Per Click - 每次點擊付費的收費模式

CPM
Cost Per Mille - 每千次展示付費的收費模式

CPI
Cost Per Install - 每次安裝APP付費的收費模式

CPV
Cost Per View - 每次觀看影片付費的收費模式 (也有寫作 Cost Per Video)
Cost Per Vist - 每次拜訪付費的收費模式

UU
Unique User - 不重覆使用者

App Exclude
App Exclude - 應用排除。指使用者已經有習慣在使用的類型模式,所以不會進行成交。

參考資料
https://marketing.tw.campaign.yahoo.net/emarketing/main/A04/B01