android studioによるアプリ制作を行っているのですが、LINE notifyを使用し自作アプリ画面上のボタンを押したら固定のメッセージをスマホのLINEhへ送るようにしたいと考えております。
コードを書き終えいざ実行しますが、うまくいきません。
どうも別のクラスからの呼び出し部分がうまくいってないようなのですが、どこがおかしいか見つけきれず。。。
今まで別のクラスを呼び出す動きをやった事がなかったので慣れていない事もあるのですが、宜しければ間違い・ミスを指摘頂けると助かります。
すいませんが、よろしくお願い致します。
--MainActivity.java-- import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { private LineNotify classln; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); classln = new LineNotify(); Button button = findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String str = classln.name(); } }
--LineNotify.java-- import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.Objects; import java.util.stream.Collectors; public class LineNotify { public static void main(String[] args) { String トークン = "****ここにアクセストークンを入れる****"; LineNotify lineNotify = new LineNotify(トークン); lineNotify.notify("lineテスト"); lineNotify.notify("Test signal"); } private final String token; public LineNotify(String token) { this.token = token; } public void notify(String message) { HttpURLConnection connection = null; try { URL url = new URL("https://notify-api.line.me/api/notify"); connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setRequestMethod("POST"); connection.addRequestProperty("Authorization", "Bearer " + token); try (OutputStream os = connection.getOutputStream(); PrintWriter writer = new PrintWriter(os)) { writer.append("message=").append(URLEncoder.encode(message, "UTF-8")).flush(); try (InputStream is = connection.getInputStream(); BufferedReader r = new BufferedReader(new InputStreamReader(is))) { String res = r.lines().collect(Collectors.joining()); if (!res.contains("\"message\":\"ok\"")) { System.out.println(res); System.out.println("失敗"); } } } } catch (Exception ignore) { } finally { if (connection != null) { connection.disconnect(); } } } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; LineNotify that = (LineNotify) o; return Objects.equals(token, that.token); } @Override public int hashCode() { return Objects.hash(token); } @Override public String toString() { return "LineNotify{" + "token='" + token + '\'' + '}'; } }
--Manifest.xml-- <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.e.testsignalapplication"> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/12 12:25
2020/10/14 11:56