私は Android WiFiDirect アプリを使用しています。私は WiFiDirectDemo を与えられて、以下のものを作るために強く変更しました:
- グループ所有者は、残りのピアにデータを送信する所有者です。
- pictre が送信されている間、新しいアクティビティが作成され、
- onTouch を使用した動画は、xml ファイルの作成を強制します。
問題: この xml を送信する新しいサービスを開始している間 (新しいアクティビティで onTouch を使用)、指定された IP とポートへの接続が拒否されました。写真の前。
その接続拒否エラーを完全に処理できません。IPがビジーであると思われます。前のアクティビティに戻るボタンをクリックすると、xml ファイルを作成でき、接続が拒否されたと再度表示されます。
このエラーを回避するために何をすべきか知りたいです:
E/画面共有: 5000 ミリ秒後に /192.168.49.10 (ポート 8988) に接続できませんでした: isConnected に失敗しました: ECONNREFUSED (接続が拒否されました)
私の権限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS"/>
アップデート
問題が解決しました:
送られてきた画像を貼った1つのアクティビティ2つ目のアクティビティからスタートします。ここで、送信された IP に別のデータを送信するサービスを再度要求したいのですが、できません。ブロードキャスト レシーバが最初のアクティビティからのメッセージをまだ検索しているため、IP がビジーで接続が拒否されました。あなたがする必要があるのは、このような2番目のアクティビティでOnResumeメソッドを@Overrideすることです。
@Override
public void onResume(){
super.onResume();
receiver = new WiFiDirectBroadcastReceiver(manager, channel, MainActivity.activityMain);
registerReceiver(receiver, intentFilter);
}
WiFiBroadcast レシーバーは私のブロードキャスト レシーバー マネージャーであり、チャネルは 1 番目のアクティビティのようであり、アクティビティメインは単純です アクティビティは次のように 1 番目から 2 番目に渡されます
public static MainActivity activityMain;
activityMain = this;