0

私は 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;            
4

0 に答える 0