2017年9月27日 星期三

Apple最新iPhone 8系列玻璃背蓋機身究竟耐不耐摔?大解謎!

摘要:

蘋果這次秋季發表會推出了iPhone 8、iPhone 8 Plus及iPhone X三款新一代iPhone新機,其機身設計已經放棄傳統的鋁合金外殼設計,而改採用2片玻璃面板加上不鏽鋼邊框,但這是否會導致倘若是一個不小心iPhone摔到了地上,就會導致整支iPhone背蓋的玻璃材質裂開呢?國外的EverythingApplePro網站,就替我們帶來了iPhone 8 Plus現場實地摔機測試,要來實際測試看看是否新款iPhone的玻璃背蓋耐摔程度。

EverythingApplePro 測試為一般水泥地,這比起台灣現有的柏油路地面,所造成得衝擊會相對較為輕微,但大多數用戶比較常摔機時,也都是在室內使用不小心手滑而摔機,故本篇也具有相當的參考價值。

測試機為「iPhone 8 Plus」與「iPhone 7 Plus」


從腰部的高度做測試:

從影片測試中可以發現,一般在腰部高度摔機,是具有一定機率會造成螢幕摔裂開,不過是要看落地接觸點是在哪裡,照常來說iPhone 8 Plus背蓋直接撞擊地面,是不會導致背蓋造成損傷,但測試中發現iPhone 7紅色限量版本,就直接導致螢幕裂開。


由此可知於腰部高度做測試是「iPhone 8 Plus」較為耐摔!!

從頭部的高度做測試:

iPhone 8 Plus 的背蓋材質由於是玻璃,明顯從頭度高度進行自由落體,背蓋直接撞擊地面,將會導致無法承受撞擊,造成整個背蓋完全呈現蜘蛛網狀態,而iPhone 7 Plus就不用多說,因為是鋁合金材質,耐撞度一定會高於玻璃。


玻璃背蓋材質並非如此的厚,在測試中,還可看見不同的著地點,讓整個背蓋輕易摔出一個洞,造成裡面零件就會暴露在外面,可見這次玻璃背蓋設計為了實現無線充電功能,而忽略了耐摔問題。


最終將附上影片連結:

https://www.youtube.com/watch?time_continue=164&v=1wApMyDq9zE



THE END & See you next time!

2017年5月30日 星期二

專題作業4

Opendata開放資料&Json

使用的開放資料:
新北市NewTaipei熱點
http://data.ntpc.gov.tw/od/data/api/04958686-1B92-4B74-889D-9F34409B272B?$format=json

一、確認網路權限
在AndroidMainfest.xml中,輸入以下程式碼,以開啟網路權限
<uses-permission android:name="android.permission.INTERNET"/>


二、加入ASYNCTASK
在MainActivity.java中(後面都在相同位置),輸入以下程式碼
class JSonTask extends AsyncTask<String, Void, String> {

        @Override
        protected String doInBackground(String... params) {
            StringBuilder sb = new StringBuilder();
            try {
                URL url = new URL(params[0]);
                BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
                String line = in.readLine();
                while (line != null) {
                    Log.d("HTTP", line);
                    sb.append(line);
                    line = in.readLine();
                }
            }
            catch (Exception e) {
            }
            return sb.toString();
        }

        protected void onPostExecute(String s){
            super.onPostExecute(s);
            Log.d("JSON", s);
            parseJSON(s);

        }

    }


三、設定取得Json資料類別
輸入以下程式碼
private void parseJSON(String s){
        try {
            JSONArray OpenData = new JSONArray(s);

            for (int i = 0; i < 5; i++){
                JSONObject json = OpenData.getJSONObject(i);

                Log.i("JSON"+i,json.getString("company"));

                String result1 = json.getString("district");
                Log.i("JSON"+i,"熱點地區:"+result1);
                String result2 = json.getString("spot_name");
                Log.i("JSON"+i,"熱點名稱:"+result2);
                String result3 = json.getString("address");
                Log.i("JSON"+i,"熱點地址:"+result3);
                String result4 = json.getString("latitude");
                Log.i("JSON"+i,"熱點經度:"+result4);
                String result5 = json.getString("longitude");
                Log.i("JSON"+i,"熱點緯度:"+result5);


            }
        }
        catch (JSONException e){

        }
    }


四、設定URL與程式互相呼應
輸入以下程式碼
String URL_A = "http://data.ntpc.gov.tw/od/data/api/04958686-1B92-4B74-889D-9F34409B272B?$format=json";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        new JSonTask().execute(URL_A);
    }


五、最終結果
打開"Android Monitor",選取"Debug",搜尋"JSON"


Finish~~\( ̄︶ ̄)/\( ̄︶ ̄)/\( ̄︶ ̄)/

2017年5月9日 星期二

專題作業3

Facebook 按讚&分享功能

壹、前置確認
1.
如果要從APP將訊息貼到使用者的塗鴉牆,首先請在Manifest檔案中確認第一次設定Facebook SDK時的ContentProvider標籤是否有存在,如果沒有的話請加入
i.開啟AndroidManifest.xml檔,確認這行有無輸入



2.新增按鈕
i.開啟Activity_main.xml(Layout檔),增加以下程式碼
**Like Button
<com.facebook.share.widget.LikeView
android:id="@+id/likeView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/login_button"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />

**Share Button
<com.facebook.share.widget.ShareButton
android:id="@+id/shareButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/likeView"
android:layout_marginTop="30dp" />


貳、程式撰寫
1.Like Part
i.打開Java主程式中的MainActivity.java,輸入以下程式碼(在onCreate下)
**網址部分請換上想按讚的網址**

LikeView likeView = (LikeView)findViewById(R.id.likeView);
likeView.setLikeViewStyle(LikeView.Style.STANDARD);
likeView.setAuxiliaryViewPosition(LikeView.AuxiliaryViewPosition.INLINE);
likeView.setObjectIdAndType("https://www.facebook.com/viaalto/?ref=ts&fref=ts",LikeView.ObjectType.OPEN_GRAPH);

2.Share Part
i.分享連結中會包含以下屬性
contentURL:分享的連結
contentTitle:代表連結中的內容標題
imageURL:顯示在貼文上的縮圖圖像網址
contentDescriptipn:內容說明,2~4句

ii.打開Java主程式中的MainActivity.java,輸入以下程式碼(在onCreate下)
**於各段字串部分上面有制式規格,請依自況填寫**

ShareLinkContent content = new ShareLinkContent.Builder()
.setContentUrl(Uri.parse("https://www.facebook.com/viaalto/?ref=ts&fref=ts"))
.setContentTitle("Alto")
.setContentDescription("Alto 是皮革設計品牌")
.build();
ShareButton shareButton = (ShareButton)findViewById(R.id.fb_share_button);
shareButton.setShareContent(content);


參、程式執行
1.初始介面


2.Like介面



3.Share介面


4.測試結果


Finish~~v( ̄︶ ̄)y

2017年3月28日 星期二

專題作業2

壹、啟用單一登入
1.在完成Facebook應用程式的ID申請後,若是要使用登入的功能,需要先將”單一登入”的功能開啟。


2.點選左上功能表中的”設定”>>”基本資料”


3.將視窗拉到下方”Android”的區塊,並且將”單一登入”的按鈕點選開來。

最後記得按”儲存”喔~

貳、新增登入按鈕
1.先開啟Android Studio,打開Activity_main.xml(Layout檔)


2.輸入此段程式碼(Facebook所提供的客製Button)
<com.facebook.login.widget.LoginButton
android:id="@+id/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="30dp"
android:layout_marginBottom="30dp" />

輸入第一行其他用選擇的會比較快喔~

3.在使用LoginButton時,我們可以一併使用以下SDK提供的類別
i. LoginManager:
使用要求的讀取或發布權限起始登入程序。

ii. CallManager:
用於將呼叫傳回至 Facebook SDK 以及您的已註冊回呼。應該從起始活動 activity 或片段 fragment 的 onActivityResult 呼叫此函數。

iii. AccessToken:
使用此類型的圖形 API 要求(GraphAPI)。它會顯示用戶編號及被接受和被拒絕的權限。
user token 個人相關資料
app token 程式使用
token 站台

iv. Profile
此類別具有已登入用戶的基本資訊。

LoginButton 是套件 LoginManager 中可用的UI控制項。使用者典籍這個按鈕時,將會以 LoginManager 中設定的權限初始化登入。此按鈕會追蹤登入狀態,並根據用戶的驗證狀態顯示正確文字。

參、增加程式部分
由於目前的 APP 使用 Fragment 設計居多,所以 FB 開發者教學裡是以 Fragment 為主要教學方式。



肆、練習
1.連結此網址:
https://developers.facebook.com/tools/explorer/你的FB應用程式編號/


2.取得權杖>取得用戶存取權杖


3.勾選所要取得得權限內容


4.輸入你所要得條件


5.提交


FINISH

2017年3月15日 星期三

專題作業1


壹、建立一個專案至指定位置
1. 開啟android sutdio,新增一個專案(new project),並取名為”MyFacebookAPP”


2. 選擇 API 15: Android 4.0.3,然後建立新專案



3. 建立完專案後,將專案結構視角切換到”Project”,並找到”build.gradle”將它開啟

貳、申請Facebook應用程式編號,並按照指定步驟執行
1. 首先登入”Facebook for Developers”,並完成註冊的程序,最後則建立你的應用程式編號專案


2. 點選進入專案執行序後,加入Facebook SDK
i. 將此段程式碼貼入”build.gradle”
repositories {
mavenCentral()
}

ii. 再將此段程式碼貼入”build.gradle”中的”dependencies”
compile 'com.facebook.android:facebook-android-sdk:4.+'

3. 再者加入Facebook 應用程式編號
i. 打開”strings.xml” (/app/src/main/res/values/strings.xml.)

ii. 加入以下程式碼至”strings.xml”
<string name="facebook_app_id">1383306921690169</string>

iii. 打開”AndroidManifest.xml”( /app/src/main/res/ AndroidManifest.xml.”)

vi. 加入以下程式碼至”AndroidManifest.xml”(調整Manifests,新增網路權限)
<uses-permission android:name="android.permission.INTERNET"/>

v. 加入以下程式碼至”AndroidManifest.xml”(新增meta-data標籤)
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>

vi. 加入以下程式碼至”AndroidManifest.xml”(如需要發送圖片、影片或分享,必須宣告FacebookContentProvider)
<provider android:authorities=”com.facebook.app.FacebookContentProvider(Facebook APP ID)”
android:name=”com.facebook.FacebookContentProvider”
android:exported=”true”
/>

參、尋找你的Hash key
1.下載openssl,放到指定位置
2.打開CMD,輸入以下指令
keytool -exportcert -alias androiddebugkey -keystore "C:\Users\A3272624\.android\debug.keystore" | "C:\openssl\bin\openssl" sha1 -binary | "C:\openssl\bin\openssl" base64

3. 得到金鑰後,將他輸入網頁中,這樣就完成囉