From 3d01465cedc7746e865a4bbe4388d7f3c97aa250 Mon Sep 17 00:00:00 2001 From: "z15755800224@163.com" Date: Tue, 18 Oct 2022 14:29:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B02?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/vcs.xml | 6 ++ app/src/main/AndroidManifest.xml | 1 - .../java/com/baidu/ai/aip/AuthService.java | 87 ++++++++++++++++++ .../java/com/baidu/ai/aip/ImgCombination.java | 2 +- .../java/com/baidu/ai/aip/Ingredient.java | 54 +++++++++++ .../java/com/baidu/ai/aip/ToIngredient.java | 9 +- .../main/java/com/example/ceshi/first.java | 22 ++--- app/src/main/java/com/example/ceshi/four.java | 6 +- .../main/java/com/example/ceshi/third.java | 15 --- app/src/main/res/layout/firstview.xml | 40 ++++---- app/src/main/res/layout/thirdview.xml | 26 ------ app/src/main/res/lizi.jpg | Bin 0 -> 73149 bytes app/src/main/res/values/themes.xml | 10 +- 13 files changed, 186 insertions(+), 92 deletions(-) create mode 100644 .idea/vcs.xml create mode 100644 app/src/main/java/com/baidu/ai/aip/AuthService.java create mode 100644 app/src/main/java/com/baidu/ai/aip/Ingredient.java delete mode 100644 app/src/main/java/com/example/ceshi/third.java delete mode 100644 app/src/main/res/layout/thirdview.xml create mode 100644 app/src/main/res/lizi.jpg diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9ef8134..4d867a2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -24,7 +24,6 @@ - > map = connection.getHeaderFields(); + // 遍历所有的响应头字段 + for (String key : map.keySet()) { + System.err.println(key + "--->" + map.get(key)); + } + // 定义 BufferedReader输入流来读取URL的响应 + BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); + String result = ""; + String line; + while ((line = in.readLine()) != null) { + result += line; + } + /** + * 返回结果示例 + */ + System.err.println("result:" + result); + JSONObject jsonObject = new JSONObject(result); + String access_token = jsonObject.getString("access_token"); + return access_token; + } catch (Exception e) { + System.err.printf("获取token失败!"); + e.printStackTrace(System.err); + } + return null; + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/baidu/ai/aip/ImgCombination.java b/app/src/main/java/com/baidu/ai/aip/ImgCombination.java index cc78110..16dd236 100644 --- a/app/src/main/java/com/baidu/ai/aip/ImgCombination.java +++ b/app/src/main/java/com/baidu/ai/aip/ImgCombination.java @@ -20,7 +20,7 @@ public class ImgCombination { * https://ai.baidu.com/file/470B3ACCA3FE43788B5A963BF0B625F3 * 下载 */ - public static String imgCombination() { + public String imgCombination() { // 请求url String url = "https://aip.baidubce.com/api/v1/solution/direct/imagerecognition/combination"; try { diff --git a/app/src/main/java/com/baidu/ai/aip/Ingredient.java b/app/src/main/java/com/baidu/ai/aip/Ingredient.java new file mode 100644 index 0000000..bb4dc1f --- /dev/null +++ b/app/src/main/java/com/baidu/ai/aip/Ingredient.java @@ -0,0 +1,54 @@ + +package com.baidu.ai.aip; + +import com.baidu.ai.aip.utils.Base64Util; +import com.baidu.ai.aip.utils.FileUtil; +import com.baidu.ai.aip.utils.HttpUtil; + +import java.net.URLEncoder; + +/** + * 细粒度图像识别 + */ +public class Ingredient { + + /** + * 重要提示代码中所需工具类 + * FileUtil,Base64Util,HttpUtil,GsonUtils请从 + * https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72 + * https://ai.baidu.com/file/C8D81F3301E24D2892968F09AE1AD6E2 + * https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3 + * https://ai.baidu.com/file/470B3ACCA3FE43788B5A963BF0B625F3 + * 下载 + */ + public static String ingredient() { + // 请求url + String url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/classify/ingredient"; + try { + // 本地文件路径 + String filePath = "D:/li.jpg"; + byte[] imgData = FileUtil.readFileByBytes(filePath); + String imgStr = Base64Util.encode(imgData); + String imgParam = URLEncoder.encode(imgStr, "UTF-8"); + + String param = "image=" + imgParam; + + // 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。 + String accessToken = "24.bb5baa6f79502180928d105dd8ea46c8.2592000.1668576873.282335-27944955"; + +// AuthService auth = new AuthService(); +// String accessToken = auth.getAuth(); + + String result = HttpUtil.post(url, accessToken, param); + System.out.println(result); + return result; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static void main(String[] args) { + Ingredient.ingredient(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/baidu/ai/aip/ToIngredient.java b/app/src/main/java/com/baidu/ai/aip/ToIngredient.java index c154823..631342b 100644 --- a/app/src/main/java/com/baidu/ai/aip/ToIngredient.java +++ b/app/src/main/java/com/baidu/ai/aip/ToIngredient.java @@ -3,18 +3,15 @@ package com.baidu.ai.aip; import com.baidu.ai.aip.ImgCombination; import com.example.ceshi.four; -public class ToIngredient extends ImgCombination{ +public class ToIngredient{ - //public static void main(String[] args) { - public static String x(){ + public static void main(String[] args) { ImgCombination img=new ImgCombination(); String str = img.imgCombination(); String name=str.substring(str.indexOf("name")+7,str.indexOf("\"}")); String odds=str.substring(str.indexOf("score")+7,str.indexOf(",")); String name_odds="有"+odds.substring(0,4)+"的概率是"+name; - return name_odds; + System.out.println("有"+odds.substring(0,4)+"的概率是"+name); } - //System.out.println("有"+odds.substring(0,4)+"的概率是"+name); - //} } diff --git a/app/src/main/java/com/example/ceshi/first.java b/app/src/main/java/com/example/ceshi/first.java index 5ebb924..73b0e71 100644 --- a/app/src/main/java/com/example/ceshi/first.java +++ b/app/src/main/java/com/example/ceshi/first.java @@ -15,7 +15,7 @@ public class first extends AppCompatActivity { //获取按钮 Button button = findViewById(R.id.button); - Button button2 = findViewById(R.id.button2); +// Button button2 = findViewById(R.id.button2); Button button3 = findViewById(R.id.button3); Button button4 = findViewById(R.id.button4); //按钮进行监听 @@ -29,16 +29,16 @@ public class first extends AppCompatActivity { startActivity(intent); } }); - button2.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - //监听按钮,如果点击,就跳转 - Intent intent = new Intent(); - //前一个(MainActivity.this)是目前页面,后面一个是要跳转的下一个页面 - intent.setClass(first.this,third.class); - startActivity(intent); - } - }); +// button2.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View v) { +// //监听按钮,如果点击,就跳转 +// Intent intent = new Intent(); +// //前一个(MainActivity.this)是目前页面,后面一个是要跳转的下一个页面 +// intent.setClass(first.this,third.class); +// startActivity(intent); +// } +// }); button3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/example/ceshi/four.java b/app/src/main/java/com/example/ceshi/four.java index 0c91fc7..35344ba 100644 --- a/app/src/main/java/com/example/ceshi/four.java +++ b/app/src/main/java/com/example/ceshi/four.java @@ -79,13 +79,13 @@ public class four extends AppCompatActivity { //ToIngredient to_in=new ToIngredient(); -// ImgCombination img1=new ImgCombination(); -// String str1 =img1.imgCombination(); + ImgCombination img1=new ImgCombination(); + String str1 =img1.imgCombination(); //// ToIngredient ii= new ToIngredient(); // String aa=ii.x(); //String name=str.substring(str.indexOf("name")+7,str.indexOf("\"}")); TextView t1=findViewById(R.id.textView11); - t1.setText("*"+ImgCombination.imgCombination()+"A"); + t1.setText(str1); }catch (FileNotFoundException e){ e.printStackTrace(); } diff --git a/app/src/main/java/com/example/ceshi/third.java b/app/src/main/java/com/example/ceshi/third.java deleted file mode 100644 index 3f1c634..0000000 --- a/app/src/main/java/com/example/ceshi/third.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.example.ceshi; - -import android.content.Intent; -import android.view.View; -import android.widget.Button; -import androidx.appcompat.app.AppCompatActivity; -import android.os.Bundle; -public class third extends AppCompatActivity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.thirdview); - } -} \ No newline at end of file diff --git a/app/src/main/res/layout/firstview.xml b/app/src/main/res/layout/firstview.xml index 15394cb..64ed500 100644 --- a/app/src/main/res/layout/firstview.xml +++ b/app/src/main/res/layout/firstview.xml @@ -9,17 +9,16 @@ - - +